0

ユーザーがデータを投稿できるプロファイル フィールドがあります。次の正規表現パターンですべてをブロックします/<(.+?)>/

< で始まり > で終わるものはすべてブロックします。これは XSS を防ぎますか? つまり、<> HTML タグを使用できなければ、今やできることはあまりありません。

4

2 に答える 2

4

実際、閉じ括弧を必要としない xss 攻撃があります。

たとえば、このページにはIEで動作するものがリストされています

<IMG SRC="javascript:alert('XSS')"

とにかく、これに気付いていないという事実は、あなたに教訓を与えるはずです。このようなブラックリストへの登録は、エラーが発生しやすく、失敗する運命にあります。適切なエスケープを適用するテンプレートを使用する必要があります (この場合は HTML エンティティ エンコーディングですが、出力が表示されるコンテキストによって異なります)。

それを回避できる場合は、入力を英数字などの安全な文字セットに制限して、そもそもこれについて心配する必要がないようにしてください。また、Unicode と null 文字を適切に処理するようにしてください。

于 2013-08-14T00:14:20.787 に答える
0

ブラウザーは、html を解析する際に非常に寛大です。タグを閉じずに次の入力を行うとうまくいくと思います:

<input onfocus=alert(1) autofocus type=text 

代わりにエンティティエスケープまたはホワイトリストを使用してください

ああ、そして。\n と一致しないため、別のバイパスがあります。

<script
>
于 2013-08-15T05:41:04.490 に答える