0

シナリオ

SQL データベースの読み取り/書き込みを行うために、javascriptSOAPClient を使用して ASP.NET 1.1 Web サービスと通信する HTML/javascript Web サイトがあります。( http://www.codeproject.com/KB/ajax/JavaScriptSOAPClient.aspx )。データベースには匿名の人口統計情報が含まれています。名前もクレジット カードも住所もありません。基本的に、収集されるデータはデータ マイニングを目的としています。

サイトは稼働中ですが、現在および将来のプロジェクトの両方で、javascript/ajax クライアントと wbe サービスの間により安全な通信を導入したいと考えています。金融業界で請負業者として働いていると、ある時点で「この Web サイトはハッキング可能ですか?」という質問に突き当たります。解決策がなければ、耳を疑うかもしれません。

コマンド パラメーターやストアド プロシージャを介してデータベースと通信するなど、既にベスト プラクティスに従っています)。ただし、現在、誰でも Web サービスの説明を参照して、公開されているサービスを使用する方法を理解することができます。

質問

  1. 私のハイブリッド ソリューション (つまり、エンド ツー エンドの Microsoft ではない) では、Web サービスでクライアント要求を認証するにはどうすればよいですか?
  2. ユーザー名/パスワードまたはその他の識別可能な要素を認証​​として Web サービスに渡し始めた場合、そのキーがクライアント側でどのように生成/保存されるかを気にする必要がありますか?
4

4 に答える 4

1

いくつかの簡単なオプションがあります。

  1. SSL + Cookie
  2. WebアプリもASP.NETであり、Webサービスと一緒にホストされている場合は、Webサービス内のWebアプリのユーザー/メンバーシップ/セッションにアクセスできる必要があります(基本的には#1ですが、何もしなくても取得できます) )。
  3. WebアプリとWebサービスが同じドメインにない場合は、クロスドメインの問題が原因でCookieが使用されていないため、Webアプリで非表示のフォームフィールドにGUIDを埋め込み、そのGUIDを一種のCookieとして使用できます。 (そして、すべてのWebサービス要求のパラメーターとして渡す必要があります)。
于 2008-10-25T03:19:10.650 に答える
1

プログラミングの観点から最も簡単な解決策は、双方向HTTPSを使用することです。つまり、サーバーはクライアントに証明書を提示し、クライアントはサーバーに証明書を提示します。そうすれば、適切な証明書(あなたが発行した)を持つクライアントだけが接続できます。

これは、サイトが一般的にアクセス可能ではないことをクライアントに安心させるのに役立ちますが、セキュリティはアプリケーションに対して透過的であり、サインアップして証明書を受け取った後は、クライアントに対して透過的です。欠点は、ユーザー証明書の発行と追跡に管理オーバーヘッドがあることですが、ユーザー名とパスワードの組み合わせを処理する場合よりもおそらく少ないでしょう。

于 2008-10-19T22:51:59.550 に答える
1

考慮すべきいくつかの提案:

  • 脅威を一覧表示し、それぞれを現在の設定と比較します。
  • SSL/HTTPSを使用します。これにより、クラス全体の脆弱性が緩和されます。
  • サーバー側で生成され、帯域外 (郵送または電話) でユーザーに送信されるusername/passwordを使用します。(これが質問2に答えることを願っています)。
  • 2 要素認証を使用します。これを行うには、RSA のキーフォブ型ギズモなどのセキュリティ トークンを調べるか、Steve Gibson のPerfect Paper Passwordsを調べます。
于 2008-10-07T11:18:42.997 に答える
0

証明書認証メカニズムを組み込むことはできますか? 検証できるキーを持つクライアントだけが通信できるようにするには? これが、私が使用している製品の管理対象デバイスがコアと通信する方法です。

于 2008-10-06T17:33:15.080 に答える