公開WCF SOAPサービスに対するCSRF攻撃の可能性を防ぐにはどうすればいいですか?WCFサービスに対するCSRF攻撃の防止
主な解決策はCSRFトークンを使用することですが、どのように達成できますか?
うまくいけば、少なくとも私にアイデアを与えるか、少なくともWCFはCSRF攻撃を受けることができないと教えてください。
公開WCF SOAPサービスに対するCSRF攻撃の可能性を防ぐにはどうすればいいですか?WCFサービスに対するCSRF攻撃の防止
主な解決策はCSRFトークンを使用することですが、どのように達成できますか?
うまくいけば、少なくとも私にアイデアを与えるか、少なくともWCFはCSRF攻撃を受けることができないと教えてください。
はい、enabled AJAX support for your serviceの場合、CSRFがWCFに適用されます。
緩和するための迅速かつ簡単な方法は、X-Requested-With
リクエストヘッダーなどのカスタムヘッダーにチェックを設定することです。 CORSを有効にしないと、これらのヘッダーをクロスドメインに渡すことはできません。
さらにこのソリューションを強化するには、セッションごとにトークンを設定し、ヘッダーにもこれを渡すことができます。 this answerを参照してください。これにより、FlashやSilverlightなどのブラウザプラグインの脆弱性を緩和することができました。これは以前はバグがありました。
ありがとうございます。しかし、私がAspNetCompatibilityモードを使用していない場合、セッションが必要ないのですが、どのようにセッションごとにトークンを適用できますか? –
あなたの質問をアプリケーションとアーキテクチャに関するさらに詳細な情報で更新できますか?例えば非WebブラウザにCSRF保護が必要ないため、サービスのクライアントは何ですか?セッションが使用されない場合、なぜCSRF保護が必要ですか? – SilverlightFox
実際、私のサービスの考え方は、異なるドメインを要求するパブリックセパレートサービスであるため、各アプリケーションは、ソープヘッダーによって送信されるユーザー名とパスワードを使用してこのサービスに接続するように求めます。ここに適用されるセッションはありません。 –
WCFサービスはブラウザからは使用できません。したがって、この種の攻撃が行われる範囲はありません。 –
@TomRedfern:それは当てはまりません:https://msdn.microsoft.com/en-us/library/bb924552(v=vs.110).aspx – SilverlightFox
@SilverlightFox - 私は直面しているようです! –