ユーザーがデータを投稿できるプロファイル フィールドがあります。次の正規表現パターンですべてをブロックします/<(.+?)>/
< で始まり > で終わるものはすべてブロックします。これは XSS を防ぎますか? つまり、<> HTML タグを使用できなければ、今やできることはあまりありません。
実際、閉じ括弧を必要としない xss 攻撃があります。
たとえば、このページにはIEで動作するものがリストされています
<IMG SRC="javascript:alert('XSS')"
とにかく、これに気付いていないという事実は、あなたに教訓を与えるはずです。このようなブラックリストへの登録は、エラーが発生しやすく、失敗する運命にあります。適切なエスケープを適用するテンプレートを使用する必要があります (この場合は HTML エンティティ エンコーディングですが、出力が表示されるコンテキストによって異なります)。
それを回避できる場合は、入力を英数字などの安全な文字セットに制限して、そもそもこれについて心配する必要がないようにしてください。また、Unicode と null 文字を適切に処理するようにしてください。
ブラウザーは、html を解析する際に非常に寛大です。タグを閉じずに次の入力を行うとうまくいくと思います:
<input onfocus=alert(1) autofocus type=text
代わりにエンティティエスケープまたはホワイトリストを使用してください
ああ、そして。\n と一致しないため、別のバイパスがあります。
<script
>