WCFのセッションをより安全にするために、どのように?
-
13-09-2019 - |
質問
我々は、MSDNの例から1のようなWCFサービスとしましょう - 。デフォルトのすべてのサービスの設定で、C#の、calculatorserviceを
私はハッカーだったと私はそれが動作を停止したいこと、そのcalculatorserviceは重要な何かを知っていた場合は、は、私は単純にサービス参照のためのコードをハックし、10台のクライアントを作成し、自分のアプリケーションを作ることができます。これらのクライアントは、セッションを存続し、近くには決してし、その後にすべての今calculatorserviceにランダム(非終端)メソッドを呼び出します。
今、明らかに、すべての10回のセッションが取られているので(または最大セッション数があるものは何でも)、誰もがcalculatorserviceにアクセスすることができ、それが完全に遮断されている!
どのように我々はそれから私たちのサービスを保護することができますか?
解決
、その後、セッションを使用しないでください!例えば、「呼単位」のアプローチを使用して、ユーザーを認証彼らはどちらかあなたのWindows / ADドメインにいる、または彼らはあなたのサービスへの呼び出しを行うために、ユーザー名/パスワードの知識を持っていることを確認します。
悪意のあるハッカーがあなたのサービスのための有効なユーザ名/パスワードの組み合わせを取得する必要があり、あなたは常にあなたが10のまたは20の同時要求を送信し、あなたのサービスを詰まらから彼を停止するために多くを行うことはできません - 少なくともないWCFサービスレベルで。 WCFは、浸水や墜落されることからサーバを保護するために、悪質な同時通話の1'000sを防ぐためのサービス絞るの振る舞いを提供します。
お使いのルータ/ファイアウォールで - - WCFサービス実際にそこにあなたを助けることはできません。。あなたは、特定のIPのか、IPの範囲を離れて維持する必要がある場合は、、あなたは以前にそのアプローチする必要があります
他のヒント
行うための最善のことは、あなたのWCFサービスを確保になります>
この記事では、私はどのようにあなたが表示されます あなたは、WCFでセキュリティを実装することができます サービス。多くのオプションがありますし、 実装するための拡張ポイント WCFのセキュリティ。また、使用することができます Windowsのような特定の製品、 2003 Serverの承認マネージャ、 一緒にWCFで実装します の許可要件 解決。 のボックスのうち、WCFサポート Windows資格情報、ユーザー名トークン そして、X.509デジタル証明書など セキュリティ証明書。のの