Javascriptの注入防止:どこから始めますか?

私は新しいWebサイト(ASP.NET、Webフォーム、C#)で作業しており、Javascriptインジェクション攻撃に対する保護を含める必要があります。誰もが、これらのタイプの攻撃に対して安全なサイトを実装するための良いリンクを持っていますか?

ありがとう

1

2 答え

あなたは、あなたのクライアントから読んだものに適切な入力valdiation を展開する必要があります。

OWASPには、ここでの大きな要約があります:

https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet

基本的には、ホワイトリスト(通常はユーザーがアプリケーションに送信/送信できるすべての正規表現)を作成し、ホワイトリストのみを受け入れることになります。これを行うのが良い習慣ですが、ホワイトリストの前にブラックリストを投げます。基本的には、JavaScriptのスクリプトタグのような悪いものを探し、それを拒否します(これはブラックリストの部分です)。しかし、あなたが見なければならないコンテンツを確実にするためにそこに得たものを渡し、安全に扱うことができ、それが許されている場合にのみ許可します。

2
追加された
ホワイトリストがうまく設計されている場合、ブラックリストはどのような目的に役立ちますか?(結局のところ、 <script> タグを除外する正規表現は通常非常に簡単に打ち負かすことができます)。
追加された 著者 Niklas B.,
ああ、大丈夫だから基本的にはセキュリティよりもパフォーマンスが必要だ。この文脈では理にかなっていますが、危険な入力に対するプログラムの堅牢性に影響を与えずに放置できる場合に限ります。
追加された 著者 Niklas B.,
私は同意する、防衛のより多くの層、より良い;)
追加された 著者 Niklas B.,
すぐに悪いと知っているものを殺す。事が明らかに悪い場合は、それらを実行するサイクルを、多くの正規表現とルールを持つ複雑なホワイトリストにすることができます。ブラックリストは非常に小さくなければならず、あなたが知っていることが非常に悪く、見たいと思わないものだけを含める必要があります(例えばスクリプトタグ)。また、グローバルブラックリスト(私のアプリはどれも非常に危険なのでこれを受け入れるべきではありません)とアプリごとのホワイトリスト(そのアプリの受け入れ可能な入力に合わせて)を持つユースケースもあります。
追加された 著者 jeffsix,
パフォーマンスは良い動機です。私は、それが既知の悪い入力に対して二重のチェックを提供することを提出しますので、あなたのホワイトリスト実装のエラーは悪いことをさせません...それは常に良いアイデアであるDepth in Depthの尺度です。
追加された 著者 jeffsix,

Cross-site scripting (XSS) is the name of the vulnerability you are concerned about. Read up on it at OWASP and consult their XSS Prevention Cheat Sheet

そこにいる間に、最も一般的なWebアプリケーションの脆弱性のトップ10 を参照し、他の攻撃/弱点から身を守る必要があります。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript