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