3

私が所有していない Web サイトには、<script>タグ付きで次のコードが追加されています。Firefox の ScratchPad または Greasemonkey を使用して、url内の変数を変更することはできますか?a.ajax

もしそうなら、どのように?
そうでない場合、なぜですか?そして、少なくともc変数を変更することは可能ですか?もしそうなら、どのように?

validateUsername: function ()
{
    clearTimeout(b.signUp.usernameValidationTimer);
    b.signUp.usernameValidationTimer = null;
    var c = a("#register-username").val();
    if(3 > c.length)
        b.signUp.hideValidationError("#register-username"), a("#register-username").removeClass("validate_ok");
    else
    {
        if(b.signUp.usernameValidation == c) return !1;
        b.signUp.hideValidationError("#register-username");
        b.signUp.usernameValidation = c;
        a("#register-username").addClass("ajax-load");
        a.ajax(
        {
            type: "POST",
            dataType: "json",
            url: "/" + b.signUp.getMarket() + "/xhr/json/validate-email.php",
            xhrFields:{ withCredentials: !0 },
            data:{ username: c },
            success: function (c)
            {
                a("#register-username").removeClass("ajax-load");
                "object" == typeof c ? "1" == c.status ? b.signUp.hideValidationError("#register-username", !0)  :b.signUp.showValidationError("#register-username", c.message) :
                b.signUp.showValidationError("#register-username")
            }
        })
    }
}
4

1 に答える 1

1

c問題のコードの変数は、Firefox を使用して比較的簡単に変更できます(アドオンも必要ありません)。

ロードされた日付/時刻を表示する簡単なテスト ページを作成しました。

var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var hour = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var ampm = (hour < 12 ? "am" : "pm");

if (hour == 0) {
    hour = 24;
}

document.write(
    year.toString() + '-' +
    (month < 10 ? '0' + month.toString() : month.toString()) + '-' +
    (day < 10 ? '0' + day.toString() : day.toString()) + ' ' +
    (hour < 10 ? '0' + hour.toString() : hour > 12 ? (hour - 12).toString() : hour.toString()) + ':' +
    (minutes < 10 ? '0' + minutes.toString() : minutes.toString()) + ':' +
    (seconds < 10 ? '0' + seconds.toString() : seconds.toString()) + ' ' +
    ampm
);

結果:

印刷日時結果


Firefox デバッグガイド

  1. Firefox デバッガーを有効にします。

    Firefox デバッガーを有効にする

  2. 問題のスクリプトを見つけて、変数が割り当てられたにコードにブレークポイントを設定します (重要! →) 。

    注 - 複数のブレークポイントを設定できます。

    スクリプトの検索、ブレークポイントの設定

  3. スクリプトを実行します。

    ページを更新するか、ボタンをクリックするか。

  4. Firefox は、ステップ 2 の行で実行を一時停止します。

    ブレークポイントに到達

  5. 右側で目的の変数を探します。その値をクリックして変更します。Enter終了したら押します。

    値を変更

    変更された変数/値は黄色で点滅します:

    変更後の黄色の点滅

  6. スクリプトの実行を再開します。

    スクリプトの実行を再開する

  7. そして結果!:

    日付の違いに注意してください ( 24から20まで)

    変更された結果

于 2013-03-25T00:37:40.273 に答える