入力フィールドに値を入れてpost送信を行い送信先でCSVに1行ずる加筆する簡易フォームを作成しました。
こちらのフォームに対してブラウザのXSSフィルタを外し、URLに
http://xxx.com/index.php?"><body/onload=alert(test)>
とするとJSアラートが表示されるためXSS対策を行う必要があります。
get値に関しては特に利用していないので冒頭に
php
1if (!empty($_GET)) { 2 foreach ($_GET as $k => $v) { 3 $k = $this->xss($k); 4 $v = $this->xss($v); 5 } 6} 7 8if (!empty($_GET["count_push"])) { 9// ajaxで本ページにgetパラメータを付与した状態でアクセスした際、テキストファイルに1を付与する処理 10} 11 12function xss($str = null){ 13 return htmlspecialchars($str,ENT_QUOTES, "UTF-8"); 14}
上記のような処理をいれてみましたが、XSSフィルタ外したブラウザで確認するとalertが動いてしまいました。
どのような処理がを行えば正しくget値に対してXSS対策ができるでしょうか。
ご教授お願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/31 14:27
退会済みユーザー
2017/10/31 14:53
2017/11/01 03:20
退会済みユーザー
2017/11/01 03:23
退会済みユーザー
2017/11/01 04:04