タグ付けされた質問 「nonce」

2
wp_verify_nonce vs check_admin_referer
違いは何ですか、どちらを使用する必要がありますか? 私はwp_verify_nonceが時間制限をチェックし、check_admin_refererがwp_verify_nonceを呼び出し、管理URLセグメントをチェックしていることを知っていますが、どのセグメントをいつ使用すべきかについて少し混乱しています。 明快にありがとう。
21 admin  security  nonce 

4
カスタム投稿タイプ管理者に追加するすべてのメタボックスにナンスフィールドが必要ですか?
現在、カスタム投稿タイプの管理ページで作業していますが、2番目のメタボックスにnonceフィールドを再度追加するかどうかの決定に固執しました。私はカスタム投稿タイプに非常に新しいので、これについてオンラインで検索してもそれほど多くの結果は得られません。 何かご意見は?ありがとう。

1
ナンス検証はどのように機能しますか?
wp_nonce_fieldが非表示フィールドに値を生成することがわかります。 <input type="hidden" id="message-send" name="message-send" value="cabfd9e42d" /> しかし、wp_verify_nonceは私が知る限りその値を使用していませんが、間違っている可能性があります。 検証にセッショントークンを使用しているようです。 $expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce'), -12, 10 ); if ( hash_equals( $expected, $nonce ) ) { return 1; } 次に、非表示フィールドに値属性を設定する意味は何ですか?

2
同じページの複数のリクエストに同じナンスを使用できますか?
または、これはナンスの目的を壊しますか?:) たとえば、ページの読み込み時に実行される2つのajaxリクエスト、または何かがクリックされた場合: $.ajax({ type: 'post', url: 'admin-ajax.php', data: { action: 'foo', _ajax_nonce: '<?php echo $nonce; ?>' } }); $.ajax({ type: 'post', url: 'admin-ajax.php', data: { action: 'foo2', _ajax_nonce: '<?php echo $nonce; ?>' } });
13 php  ajax  nonce 

2
ナンスは役に立たないのですか?
これはおそらくnoobの質問ですが、私に聞いてください。Nonceを使用してスクラッパー(phpcurlスクラッパーなど)などから保護することは重要ではありませんか?しかし、私のNonceは次のようにドキュメントの先頭に出力します。 /* <![CDATA[ */ var nc_ajax_getpost = { ...stuff... getpostNonce: "8a3318a44c" }; /* ]]> */ だから私が迅速なスクレイパーを構築しているなら、そのページからナンス値を取得し、それを私のPOSTで使用するだけです... ここで何が欠けていますか?
11 security  nonce 

2
Ajaxリクエストごとに一意のナンスを取得するにはどうすればよいですか?
Wordpressに後続のAjaxリクエストのための一意のナンスを再生成させることについてのいくつかの議論を見てきましたが、私の人生では、実際にWordpressにそれを実行させることはできません-新しいと思うものをリクエストするたびにノンス、私はワードプレスから同じノンスを取り戻します。私はWPのnonce_lifeの概念を理解し、それを他の何かに設定することさえ理解していますが、それは私を助けませんでした。 ローカリゼーションを介してヘッダーのJSオブジェクトにnonceを生成しません。表示ページで生成します。Ajaxリクエストを処理するためにページを取得できますが、コールバックでWPから新しいノンスをリクエストすると、同じノンスが返され、何が間違っているのかわかりません...最終的にはこれを拡張して、ページに複数のアイテムがあり、それぞれが追加/削除できるようにする-したがって、1つのページからの後続の複数のAjaxリクエストを許可するソリューションが必要です。 (そして、私はこの機能のすべてをプラグインに組み込んだと言うべきです。したがって、フロントエンドの「表示ページ」は実際にはプラグインに含まれている関数です...) functions.php:ローカライズしますが、ここではナンスを作成しません wp_localize_script('myjs', 'ajaxVars', array('ajaxurl' => 'admin-ajax.php'))); JSを呼び出す: $("#myelement").click(function(e) { e.preventDefault(); post_id = $(this).data("data-post-id"); user_id = $(this).data("data-user-id"); nonce = $(this).data("data-nonce"); $.ajax({ type: "POST", dataType: "json", url: ajaxVars.ajaxurl, data: { action: "myfaves", post_id: post_id, user_id: user_id, nonce: nonce }, success: function(response) { if(response.type == "success") { nonce = response.newNonce; …
11 ajax  nonce 

3
REST APIから取得したナンスは無効であり、wp_localize_scriptで生成されたナンスとは異なります
Googleから届いたものの場合:何をしているのか本当に理解していない限り、REST APIからナンスを取得すべきではありません。REST APIを使用したCookieベースの認証は、プラグインとテーマのみを対象としています。シングルページアプリケーションの場合は、おそらくOAuthを使用する必要があります。 この質問が存在するのは、単一ページのアプリを構築するときに実際に認証する方法がドキュメントで明確になっていない、または明確ではなかったため、JWTは実際にはウェブアプリに適しておらず、OAuthはCookieベースの認証よりも実装が難しいためです。 このハンドブックには、Backbone JavaScriptクライアントがナンスを処理する方法の例があり、この例に従うと、/ wp / v2 / postsなどの組み込みエンドポイントが受け入れるナンスを取得します。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); ただし、Backboneの使用は問題外であり、テーマも問題なので、次のプラグインを作成しました。 <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.