サイト構築時、
大概の場合お問合せフォームを設置すると思いますが、
よく問題になるのが、
テキストボックス項目に入力された「改行コード(\n)」や「復帰コード(\r)」の対応です。
これらの文字を入力されてしまうと、
スパムメールの踏み台やフィッシング詐欺メールに利用されてしまう可能性があり、
重大な脆弱性につながります。
その為、
何らかの対応を行っておいた方がいいです。
対応方法としてはいろいろありますが、
例えば、
str_replace()関数を使って、「改行コード(\n)」や「復帰コード(\r)」を削除してしまえば楽です。
こんな風に。
$data = str_replace(PHP_EOL, "", $data);
ただ、
そもそも、お問合せフォームの項目に、
ユーザーが「改行コード(\n)」や「復帰コード(\r)」を直接入力する機会は無いと思います。
なので、
これらの文字が含まれていれば、
エラーで弾いてしまってもいいと思います。
このような感じで。
if(preg_match("/\\\\n|\\\\r/", $_POST["yourname"])){ echo "「お名前」に不正な文字列が含まれています。"; }
PHP脆弱性対応PHP脆弱性対応:XSS(クロスサイトスクリプティング)
PHP脆弱性対応PHP脆弱性対応:フォームのセキュリティー対策 入力値の妥当性チェック
PHP脆弱性対応PHP クッキー(Cookie)にセキュア属性(secure属性)を付与
この記事へのコメントはありません。