4

Web サイトをクロスサイト スクリプティング (XSS) から保護しようとしていますが、正規表現を使用してユーザー入力を検証することを考えています。

これが私の質問です: 私は危険な HTML タグのリストを持っています...

<applet>
<body>
<embed>
<frame>
<script>
<frameset>
<html>
<iframe>
<img>
<style>
<layer>
<link>
<ilayer>
<meta>
<object>

...そして正規表現にそれらを含めたい - これは可能ですか? そうでない場合は、何を使用すればよいですか? そのようなものを実装する方法について何か考えはありますか?

4

4 に答える 4

6

幅広い情報については、 OWASP XSS (クロス サイト スクリプティング) 防止チート シートをお読みください。タグをブラックリストに登録するのはあまり効率的な方法ではなく、ギャップが残ります。入力をフィルタリングし、ブラウザーに出力する前にサニタイズし、HTML エンティティをエンコードし、リンクで説明されているその他のさまざまな手法を使用する必要があります。

于 2013-03-22T19:27:56.590 に答える
5

文字列を HTML としてエンコードする必要があります。dotNET メソッドを使用する

HttpUtils.HtmlEncode(string text)

詳細がありますhttp://msdn.microsoft.com/en-us/library/73z22y6h.aspx

于 2013-03-22T19:32:17.720 に答える
2

すでに説明したように、サニタイズとしてのブラックリスト登録は効果的ではありません。誰かが細工された入力を送信すると、ブラックリストがどうなるか考えてみてください。

<SCRIPT>
<ScRiPt>
< S C R I P T >
<scr&#00ipt>
<scr<script>ipt>(ブラックリストを再帰的に適用しましたか ;-) )

これは考えられる攻撃の列挙ではありませんが、ブラックリストを破る方法について覚えておくべきいくつかの例です. これらはすべてブラウザで正しくレンダリングされます。

于 2013-03-22T19:55:33.697 に答える