1

しばらく前に、サイト証明書/SSL を持たない顧客用のサイトを作成しました。これは、基本的な asp_net ログイン システムを備えているだけです。

このサイトからは何も購入できず、個人情報は保持されません。在庫が表示され、ユーザーが電話して株を購入できる電話番号が提供されるだけです。

私たちのユーザーの 1 人は独自のシステムを持っており、WebService を介して少しの情報を取得したいと考えています。ユーザー名、パスワード、および ID を受け取り、システムに情報を返す WebMethod を使用して WebService を配置するだけのつもりでした。

開発者の 1 人は、ユーザー名とパスワードを使用した WebMethod 呼び出しは、サイトのログイン システムよりもはるかに安全性が低いため、これによりシステムの安全性が大幅に低下すると述べています。

この WebMethod 呼び出しは、サイトのログイン システムよりも安全性が低いのでしょうか?

4

2 に答える 2

0

WebService ファイルには混合モード認証を使用できます。

次の手順に従ってください。

  • webservice ファイルを右クリックします。
  • Goto 認証
  • 匿名を削除し、[基本的な Windows 認証] をクリックします
  • ファイル名を web.config に追加して、パブリックにアクセスできるようにします

<location path="webserice.svc"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>

  • 管理ツールを使用して Web サーバーにユーザーを作成する
  • Web サービスを呼び出し、作成したユーザーの資格情報を使用します。

localhost.MyWebService myService = new localhost.MyWebService();
System.Net.CredentialCache myCredentials = new System.Net.CredentialCache(); NetworkCredential netCred = new NetworkCredential("UserName", "Password"); myCredentials.Add(new Uri(myService.Url), "Basic", netCred); myService.Credentials = myCredentials;

Webサービスの呼び出し時にSSLが使えると良い

于 2012-09-27T02:00:41.713 に答える
0

これはすべて、そのパスワード データをどのように受け入れるかによって異なります。パスワードのプレーンテキストをネットワーク経由で送信しないようにする必要があります。これを行うには、次の種類のパターンを使用します。

  1. クライアントによる認証要求
  2. サーバーは一時的な公開鍵で応答します。一時的な秘密鍵が生成され、サーバーに保存されました。これは、短期間で期限切れになる可能性があります (使用されていない場合)。
  3. クライアントは公開鍵を使用してパスワードを暗号化します
  4. クライアントは暗号化されたパスワードとその他のデータをネットワーク経由で送信します

一般に、プレーン テキストのパスワードは、その内容に関係なくネットワーク経由で送信するべきではありません。バイナリ、SOAP、Web サービス、http など。送信された場合、誰かがそれを盗聴できます。Wireshark を 1 回キャプチャするだけで、すべてのデータが危険にさらされます。

すでに有線暗号化を行っている場合、それがどのように安全性が低いかわかりません。誰が誰であるかがわかるように、何らかのハンドシェイクも追加した方がよいでしょう。または、IP ソースが正しいトークンを送信できなかった場合にリクエストのレート制限を確実に行うためにそれができない場合は、それを行うことをお勧めします。これは、ユーザーが適切な試行回数内にログインしない場合に UI をロックアウトするようなものです。

中間者攻撃を防ぐため、SSL を追加することもお勧めします。

私はセキュリティの専門家ではありませんが、セキュリティとは層に関するものだということは知っています。トラフィックを暗号化する、プレーンテキストを送信しない、ポートを閉じる、アクセス許可を管理する、パスワードをハッシュする、ハンドシェイクを行う、認証試行を制限する、大量のログを取得するなど。

于 2012-09-26T22:39:17.820 に答える