web-dev-qa-db-ja.com

リモートマシンで利用可能なMicrosoft ASMX Webサービステストフォーム

私はWebサービスのセキュリティに関する調査を行っています。一部のサイトがAjaxとJQueryを使用してASMX WebServicesを利用していることに気付きました。 Webサービスエンドポイントに移動したところ、自分のマシンから、テストフォームを使用してサービスを利用できることがわかりました。その一部は、送信するHTTPメカニズムを確認できたSOAP over HTTP。この情報をリモートユーザーが利用できるようにすると、不要な呼び出しが行われたり、DoS攻撃が行われたりする可能性があります。

このテストフォームをリモートユーザーに表示すると、サービス攻撃を引き起こす可能性があると思いますか?

2
Michael Hidalgo

ASMX/WCF/SOAP Webサービスを本番環境にリリースするときは、メタデータアクセスを無効にし、テストエントリフォームをオフにすることをお勧めします。はい、ASMXのテストフォームを無効にする必要があります。さらに、ASMXをWCFエンドポイントにアップグレードする必要があります。

そのままにしておくと、DoS攻撃につながりますか?いいえ、おそらく違います。誰かがそれに遭遇した場合、誰かがデータを入力して入力しようとしますか?うん。ただし、問題があるのはWSDLメタデータです。 WSDLを使用すると、別のアプリケーションからWebサービスを利用して、テストフォームを経由せずにサービスを直接呼び出すことができます。メタデータをオフにすると、WSDLにアクセスできないため、信頼できるクライアントのみがサービスのインターフェースについて知っている必要があります。

2
Steve

ここにはいくつかのアプローチがあります。最初に最も気の利いた方法は、情報が表示されるページを変更することです。Pag​​e DefaultWsdlHelperGenerator.aspx にあります %SYSTEMROOT%\Microsoft.net\framework\v1.1.4322\Config

より高度な方法は、WebサイトのWeb.configでこれを行うことです。

<webServices>
<protocols>
              <remove name="Documentation"/>
</protocols>
</webServices>

また、HttpModuleを実装して、Webサービスの使用方法をカスタマイズすることもできます。

1