PHPを使ったメールフォームでメール本文に$_SERVER['REMOTE_ADDR']や$_SERVER['HTTP_USER_AGENT']を記載する場合は、htmlspecialcharsは必要でしょうか?
個人的にhtmlspecialcharsは当然必要だと思っているのですが、$_SERVERについてのセキュリティ処理について説明しているWEBページがほとんど見当たらなかったため、自分が的外れな処理をしているのではないかと疑念を抱き質問させて頂きました。
なお、postのエスケープ処理は以下のようにしているのですが、
PHP
1function checkhs($data){ 2 if (is_array($data)) { 3 return array_map("checkhs",$data); 4 } else { 5 return htmlspecialchars($data, ENT_QUOTES, 'UTF-8'); 6 } 7} 8//POSTを一括処理 9$_POST = checkhs($_POST);
$_SERVERについても、以下のように一括でエスケープ処理しても問題ないでしょうか?
PHP
1$_SERVER = checkhs($_SERVER);
それとも、ひとつひとつエスケープ処理すべきでしょうか?
PHP
1$ip = htmlspecialchars($_SERVER['REMOTE_ADDR'], ENT_QUOTES, 'UTF-8'); 2$agent = htmlspecialchars($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, 'UTF-8');
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/06 05:02