誰かがページ外から私のWebMethodsにアクセスできますか?
質問
ページがあり、ScriptManagerを介してaspxページからtheeseメソッドを使用できるwebmethodsがあります。WebMethodsをセキュリティで保護する方法がある場合、ページの外側からだれかがこれらのメソッドにアクセスできるかどうか疑問に思います。
解決
Webメソッドを完全に保護することはできません。結局のところ、Webページからアクセスしている場合、クライアントブラウザから直接アクセスされています。
ある種のワンタイムパスワード/トークンを含める必要がある追加のパラメーターを追加し、ページがレンダリングされるときに生成することができます。これにより、誰かが実際にサイトにアクセスせずにWebサービスを使用し続けることが難しくなります。
他のヒント
Webメソッドには、Webページと同じ種類のセキュリティがあります。それらが安全にアクセスされていることを確認する必要がある場合は、アクションを許可する前に有効なセッション、認証されたユーザーなどを確認してください。 Webメソッドへのリクエストには、リクエストを行ったユーザーが認証されているかどうかを判断するために必要なさまざまなCookieを含める必要があります。認証されたユーザーの身元、ユーザーの役割などに基づいて、リクエストを処理する必要があるかどうかを判断できます。 Web構成を使用してページを保護する場合、ページに適用されるセキュリティは、ページ上のWebメソッドにも適用される必要があります。
ブラウザとは無関係にリクエストを単純に発行しないことを保証できないことに注意してください(つまり、リクエストは常にアプリケーションのUI内から行われます)。どのページに対しても同じ種類のセキュリティチェックを行う必要があります。
ここで、ASPXページに追加されたWebメソッドの保護について説明していることに注意してください。 ウェブサービスでは、認証と承認の処理がまったく異なる場合があります。たとえば、すべてのリクエストで資格情報が必要になる場合があり、「エンベロープ」の一部である場合があります。またはメソッド自体のパラメーター。 Webサービスのセキュリティ保護は、おそらくそれ自体の問題の主題です。
はい、WebMethod属性を追加すると、そのメソッドがリモートで呼び出し可能になります。つまり、たとえばjavascriptを使用して呼び出すことができます。簡単に言えば、サードパーティに電話をかけたくないWebMethodsを公開すべきではありません。ただし、セキュリティとWebサービスに関する詳細については、 http:// msdnを参照してください。 .microsoft.com / en-us / magazine / cc188947.aspx
はい。
ただし、それらを簡単に保護します。。