web-dev-qa-db-ja.com

AJAX ASMXへの呼び出しのリスク

現在、ASP Webサービス(.asmx)へのajax呼び出しに取り組んでいます。

POSTをurl/.asmx/WebMethodに設定している状況で、私はあらゆる種類の情報を公開していますか?

'WebMethod'で、APIを呼び出してjson文字列を渡すPostJsonAsyncを実行しています。

私はまだ学んでいるので、public [WebMethod]を呼び出すとコードが公開されると言われましたが、それがどのように可能かはわかりません。

ユーザーが私が持っているWebMethodサーバー側コードにアクセスして、利用可能なAPI呼び出しを覗き見することは可能ですか?

いくつかのマイナーなセキュリティ手法を試しました。SitefinityCMSを使用しています。私がしたことは、CurrentUserIdentityを受け取り、GUIDを返すWebMethodを呼び出すことでした。現在のユーザーがログインしている場合は、有効なGuidを返します。そうでない場合は、ゼロでいっぱいのGuidを返します。

次に、API呼び出しを含むWebMethodを呼び出し、jsonオブジェクトを有効または無効なGUIDと共に投稿します。次に、サーバー側のWebMethodコードは、GUIDが有効かどうかを確認し、UserProfileを生成できるかどうかに基づいて続行します。

私には、これは安全に思えますが、これでもAPIだけでなくWebMethodも公開されたままになると言われています。しかし、私は何が公開され、何が使用できるかを理解していません。

誰かがこれについてより多くの情報を持っている任意のリソースに私を導くことができるか、誰かがWebServiceのセキュリティについてアドバイスしてくれるなら、私はそれを感謝します。

前もって感謝します。

4
terbubbs

いいえ、ASMXWebサービスの呼び出しと他の種類のWebサービスの呼び出しに違いはありません。プロジェクトのタイプ(WebサイトとWebプロジェクト)展開済み。構成方法によっては、Webサービスで利用可能な他の呼び出しを検出できる場合がありますが、とにかく検出するのは簡単なので、これだけではセキュリティ上の脅威にはなりません(HTTPトラフィックが傍受される可能性があるため)。転送中のデータを保護するために、サービスを呼び出すためにHTTPSを使用していることを確認する必要があります。

4
Andy