2

非常に大規模なコード ベースで XSS 脆弱性の恒久的な修正に取り組んでいる間、主要なリスクを軽減するための一時的なクイック フィックスとして、XSS から保護する合理的な仕事をする既存の XSS 防止ブラックリストを探しています。

できれば正規表現のセット。テストやスモーク テストなどのチート シートがたくさんあることを認識しています。私が探しているのは、攻撃をブロックするための事前調整された正規表現です。

最善の方法は出力エスケープであるか、ホワイトリストを使用するためにユーザーからのマークアップが必要な場合であることを十分に認識しています。しかし、コード ベースのサイズが大きいため、実際のソリューションに取り組みながら、脆弱性の当面のフットプリントを減らし、ハードルを引き上げるための何かが早急に必要です。

誰か良いセットを知っていますか?

4

6 に答える 6

3

これはあなたの質問に対する直接的な回答ではないかもしれませんが、同様の状況にある ASP.NET 開発者はこれが役立つと思うかもしれません:

Microsoft アンチクロス サイト スクリプティング ライブラリ V1.5

このライブラリは、「包含の原則」技術を使用して XSS 攻撃に対する保護を提供するという点で、ほとんどのエンコーディング ライブラリとは異なります。このアプローチは、最初に有効または許容可能な文字セットを定義することによって機能し、このセット外のもの (無効な文字または潜在的な攻撃) をエンコードします。包含アプローチの原則は、XSS 攻撃に対する高度な保護を提供し、高度なセキュリティ要件を持つ Web アプリケーションに適しています。

于 2008-09-23T10:19:25.267 に答える
2

ここに 1 つ: http://ha.ckers.org/xss.htmlがありますが、完全かどうかはわかりません。

CAL9000 は、そのようなものを見つけることができる別のリストです。

于 2008-09-23T10:18:53.240 に答える
2

PHP を使用しているかどうかはわかりませんが、使用している場合は HTMLPurifer を確認してください。使い方は非常に簡単です。purify()入力を受け入れるか、出力するメソッドへの呼び出しを追加するだけです。そのホワイトリスト ベースのアプローチは、私がテストしたすべての XSS 攻撃をブロックします。

于 2008-09-23T16:18:24.703 に答える
1

ha.ckers.org/xss.html のチート シートは完全ではありません。私の同僚は、そこにないものを 1 つか 2 つ見つけました。RSnake は、各攻撃文字列が通過する多くの正規表現フィルターを一覧表示します。いくつか使用すると、十分な穴を閉じることができます。

それは良い出発点になるでしょう。少なくとも、どのようなものを探す必要があるかを知ることです。

これを出発点として使用し、作成するスクリプトが十分な文字をエスケープして、ブラックリストが見逃した攻撃を無害にするようにします。ブラウザがそれをレンダリングしない場合、xss インジェクションは何の役に立つでしょうか?

実際には、適切な文字を十分にエスケープすることで、ほとんどの場合うまくいきます。すべての < を a に変換し、&lt;" を&quot;.

于 2008-09-23T14:16:53.527 に答える
0

欲しいのはIDS(侵入検知システム)です。PHP を使用している場合は、PHPIDSがあります。優れたハッカー コミュニティによって維持およびテストされています。彼らは、Rsnake の元のリストをはるかに超えて、フィルターを改善するためにあらゆる種類のものを投入してきました。どこかに .NET ポートもありましたが、まだ維持されているかどうかはわかりません。

于 2008-09-24T06:06:48.813 に答える
0

Apache を実行している場合は、mod_securityを使用していくつかの穴を塞ぐことができます。少なくとも、トラフィックを監視し、手遅れになる前に対応するためのツール (コンソールまたは単純なログファイル) が提供されます。また、gotroot.comには、Web アプリケーションに関する興味深いルールがいくつかあります。

繰り返しになりますが、あなたがどのような種類の穴を塞いでいるのか、私にはよくわかりません。

于 2008-09-23T10:19:41.023 に答える