私はWebサービスのセキュリティに関する調査を行っています。一部のサイトがAjaxとJQueryを使用してASMX WebServicesを利用していることに気付きました。 Webサービスエンドポイントに移動したところ、自分のマシンから、テストフォームを使用してサービスを利用できることがわかりました。その一部は、送信するHTTPメカニズムを確認できたSOAP over HTTP。この情報をリモートユーザーが利用できるようにすると、不要な呼び出しが行われたり、DoS攻撃が行われたりする可能性があります。
このテストフォームをリモートユーザーに表示すると、サービス攻撃を引き起こす可能性があると思いますか?
ASMX/WCF/SOAP Webサービスを本番環境にリリースするときは、メタデータアクセスを無効にし、テストエントリフォームをオフにすることをお勧めします。はい、ASMXのテストフォームを無効にする必要があります。さらに、ASMXをWCFエンドポイントにアップグレードする必要があります。
そのままにしておくと、DoS攻撃につながりますか?いいえ、おそらく違います。誰かがそれに遭遇した場合、誰かがデータを入力して入力しようとしますか?うん。ただし、問題があるのはWSDLメタデータです。 WSDLを使用すると、別のアプリケーションからWebサービスを利用して、テストフォームを経由せずにサービスを直接呼び出すことができます。メタデータをオフにすると、WSDLにアクセスできないため、信頼できるクライアントのみがサービスのインターフェースについて知っている必要があります。
ここにはいくつかのアプローチがあります。最初に最も気の利いた方法は、情報が表示されるページを変更することです。Page DefaultWsdlHelperGenerator.aspx
にあります %SYSTEMROOT%\Microsoft.net\framework\v1.1.4322\Config
より高度な方法は、WebサイトのWeb.configでこれを行うことです。
<webServices>
<protocols>
<remove name="Documentation"/>
</protocols>
</webServices>
また、HttpModuleを実装して、Webサービスの使用方法をカスタマイズすることもできます。