28

Jeff は実際にこれについてSanitize HTMLに投稿しました。しかし、彼の例は C# であり、実際には Java バージョンにもっと興味があります。Javaのより良いバージョンを持っている人はいますか? 彼の例は、C# から Java に直接変換するだけで十分ですか?

[更新] 私がこの質問をしたとき、SO は今日ほど人気が​​なかったので、この質問に報奨金を出しました (*)。セキュリティに関しては、調べれば調べるほどいい!

(*) 実はまだクローズドベータだったと思います

4

9 に答える 9

3
^(\s|\w|\d|<br>)*?$ 

<br> これにより、文字、数字、空白、およびタグも検証されます。より多くのリスクが必要な場合は、次のようなタグを追加できます

^(\s|\w|\d|<br>|<ul>|<\ul>)*?$
于 2009-06-01T22:39:03.070 に答える
0

古いスレッドですが、これは他のユーザーにとって役立つかもしれません。PHP 用に維持されているセキュリティ レイヤー ツールがあります: https://github.com/PHPIDS/これは、次の場所にある一連の正規表現に基づいています。

https://github.com/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filter.xml

于 2014-09-09T13:25:58.923 に答える
0

[\s\w\.]*. 一致しない場合は、XSS があります。多分。この式では、文字、数字、およびピリオドのみを使用できることに注意してください。XSS を恐れて、有用なシンボルであっても、すべてのシンボルを回避します。& を許可すると、心配になります。& のすべてのインスタンスを単に置き換えるだけで&amp;は十分ではありません。信頼するには複雑すぎる:P. 明らかに、これは多くの正当なテキストを許可しません (一致しない文字をすべて ! または何かに置き換えることができます) が、XSS を強制終了すると思います。

それをhtmlとして解析し、新しいhtmlを生成するという考えはおそらくより良いでしょう。

于 2009-02-11T19:30:40.237 に答える
0

jeffs コードを使用する際の最大の問題は、現在使用できない @ です。

必要に応じて、jeffsコードから「生の」正規表現を取得して貼り付けるだけです

http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html

エスケープが必要なものがエスケープされるのを見て、それを使用します。


この正規表現の使用を念頭に置いて、他の回答があなたを助けようとするように、何かをコピー/貼り付けする前に、自分が何をしていたのか、成功しなかった場合の理由と結果を個人的に理解していることを確認します。

(それはおそらく、コピー/貼り付けのためのかなり健全なアドバイスです)

于 2008-08-26T10:25:15.560 に答える