XSSの安全保障と防衛
思考
XSS防御一般的な考え方は次のとおり入力フィルタ、コードの出力
フィルタ:このような請求の出力点として、ビジネスニーズに基づいて、フィルタは、電話番号を入力し、電話番号のみが入力されたデジタルフォーマットを可能にします。
このようなHTML HTMLエンティティに出力するように、フロントエンドポイントのデータ出力へのすべての出力は、エスケープに従って行われる)(内部に逃げJS JS入力エスケープ:エスケープ
バイパスケース
hrefの出力バイパスをXSS:
代码层面:`$html.=‘’<a href ='{message}'>`
情報送信メッセージ
のjavascript:警告(1111)直接herfはhtmlspecialcharsをバイパスすることができ、異なるラベルに置換されています
解きます
href后面一般去接网址
在用户输入的时候添加判断
只允许http,https开头其次再进行htmlspecialchar函数处理
JSの出力バイパスXSS:
コードレベル:
<script>
$ms='11'</script><script>alert(1111)</script> ;
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
</script>
ペイロードがあります1'</script><script>alert(1111)</script>
動的にJSフォームXSSを生成するために、入力には、JavascriptをそうJSを翻訳するために、文字エンティティとタグを解釈するのではない
XSSの問題が解決することができますが、実体の内容はJSでエンコードされたものの実体は、ここでエンコードされた場合使用を採用するので、ここで、これはフロントエンド機能につながる、そこに翻訳されることはありません使用することはできません\特殊文字をエスケープします