2

私のコード:

 function HandleSignUp() {
    var CurrentURL = document.URL;
    var obj, val;
    //ajax call started
    $.ajax({
        type: "POST",
        url: "../../webservice/GetAjaxDataWebService.asmx/RegisterNewUser",
        data: "{'UserFullName': '" + $('#SignUpName').val() + "','Email': '" + $('#SignUpEmail').val() + "','Password': '" + $('#SignUpPassword').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            //msg.d contains the return value from web service call
            $.colorbox.close();

            val = eval(msg);
            obj = jQuery.parseJSON(val.d);

            UpdateLogin(obj.Email, obj.FirstName);

        }
    });
    //ajax call ended
}

jQuery AJAX を使用して WebService に送信されたデータが、何らかの攻撃ではなく、自分のサイトを経由していることを確認するにはどうすればよいですか。

ログイン用の同様の ajax 呼び出しがあり、ユーザー ID とパスワードを Web サービスに渡して認証します。

有効な Web サービス呼び出しであることを確認するために、1 回限りの要求応答トークンを持つ方法はありますか。

私の質問が明確でない場合はお知らせください。

4

2 に答える 2

2

ハッシュキーを使用して軽量のMAC-ingメカニズムを実装できます(あなただけが知っています)

  1. Web サービスへの各呼び出しの前に、メッセージ ペイロードの最初のバイトをハッシュ キーにフィードしn、ハッシュ値を計算します。
  2. Web サービスを呼び出し、http ヘッダーでハッシュ値を送信します (認証ヘッダーをお勧めします。カスタム ヘッダーを作成できます。
  3. Web サービスでは、サービス リクエストを受け入れる前に、同じデータ、つまり最初の N バイトを使用してハッシュ値を計算し、認証ヘッダーのハッシュ値と比較して、メッセージの信頼性を検証します。値がチェックアウトされた場合にのみ、リクエストを受け入れます。

ここでは処理のオーバーヘッドが少しあり、送信が安全な回線を介して行われていると想定しています。そうでない場合、メッセージは依然としてハイジャックされる可能性があります。しかし、あなたは偽の電話の問題を解決します。

于 2012-10-09T04:12:19.867 に答える