SQLインジェクション対策【PHP】「htmlspecialchars」

みなさんこんにちは。

前回は、

WordPressに超簡易的なお問い合わせページを追加してみた

で本ブログにお問い合わせページを追加してみました。

前回のコードだけだと、実はまだまだ不完全でした。

なので、今回は悪意のある攻撃から身を守るために「htmlspecialchars」というPHPの関数を使って

SQLインジェクション対策をしたいと考えております。

SQLインジェクションに関してはぐぐっていただければ死ぬほど出てくると思います。

要するに入力フォームにある特定の文字を入力することによって、

サーバー内部のデータを引っこ抜けたり云々ができてしまいます。

これを防ぐために「htmlspecialchars」という関数を使うのです。

前回のcontactComplete.phpでは、POSTで飛んできた入力値を変数に入れて利用していました。

その部分を

$from = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
$name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
$toiawase = htmlspecialchars($_POST['toiawase'], ENT_QUOTES, 'UTF-8');

こんな感じに変えるだけです。

こうすることで、

こういうお問い合わせが

こんな感じに特殊文字が変換されて送信されるようになります。

もしこの文字たちが変換されずにプログラムで利用されると大変なことになります。

まだ対策されていない方がいらっしゃったらぜひ!