-2
私は、次のPHP XSSフィルタ機能を持っている:このコードは本当にXSS証明ですか?
<?php
function xssfilter($inp){
$inp = html_entity_decode(urldecode($inp));
$inp = preg_replace('/!/','',$inp);
if (preg_match('/script|on|xmlns|data/iu',$inp)){
while(preg_match('/script|on|xmlns|data/iu',$inp)){
$inp = preg_replace('/(script)|(on)|(xmlns)|(data)/iu','NO!',$inp);
}
}
return $inp;
}
?>
明らかにあなたはここで、リモートスクリプトをアップロードすることができますが、あなたには、いくつかの方法で正規表現をバイパスすることができた場合、ここで私の質問はありますか?
この質問は雑学の質問のように聞こえます。 –
この機能を書いた人は、コンテンツのサニタイズ方法をよく理解していないようです。 URLのデコード、エンティティのデコード、感嘆符の置き換え、新しいキーワードの置き換え...彼らはちょうど問題を起こしたように見え、それが仕事をしてくれることを望みます。 –