1

ユーザーがパスワードの変更ページで元のパスワードを入力できるようにし、ページを更新せずにパスワードが正しいかどうかをチェックできるようにしたいと考えています。パスワードが正しい場合、テキストボックスの横にチェックボックスの画像が表示されるようにしたいです。

ただし、2 つの問題があります。1)これを安全な方法で行うにはどうすればよいか、2)キーを押すたびに ajax 呼び出しを実行しても、キーを押すたびに常にキャッチされるとは限りません。

これは私がこれまでに持っているものです:

$("#oldPW").keyup(function () {
    checkPW();
});

// on keyup
function checkPW() {
    var pw = $("#oldPW").val();
    var dataSring = "pw=" + pw;
    $.ajax({
        type: "POST",
        url: "checkPW",
        data: dataSring,
        cache: false,
        success: function (data) {
            if (data== "True") {
                $("#pwok").fadeIn();
            }
            if (data== "false") {
                $("#pwok").fadeOut();
            }
        }
    });
}

上記のコードの問題は、ユーザーが手動で画像を表示でき、上記の「セキュリティ」をバイパスできることです。ユーザーが送信を押した後にもう一度チェックすることはできますが、それでは問題 1 のキーアップの欠落には対処できません。また、セキュリティの観点から誰にでもできるかどうかもわかりません。

4

1 に答える 1

1

問題 1 については、サーバー側でパスワードを検証する必要があります。そうすれば、誰かがクライアント側をバイパスすることを心配する必要はありません。

#2に関しては、問題はajax呼び出しがどの順序で完了するかわからないため、最後の呼び出しの後に前の呼び出しが終了する可能性があることです。これはさまざまな方法で処理できますが、1 つは、再試行するたびにリクエストを中止することです。

$("#oldPW").data('lastRequest', {abort: function () {}});

function checkPW() {
    var pw = $("#oldPW").val();
    var dataSring = "pw=" + pw;
    $("#oldPW").data('lastRequest').abort();
    $("#oldPW").data('lastRequest', $.ajax({
于 2013-01-30T04:25:36.163 に答える