「nonce」の使い方について
-
お世話になります。
「nonce」の使い方について教えて頂けませんでしょうか。現在HTMLにこのようなボタンがあり、クリックするとuser metaの「’allow’」が更新されるPHPがあります。(JSは割愛)
▼HTML
<button type="button" data-target_id="1">このIDを許可</button>
▼PHP
function my_enqueue_scripts_ajax() { $handle = 'my_script'; $jsFile = 'path/to/myscript.js'; wp_register_script($handle, $jsFile, ['jquery']); $action= 'my_ajax_action'; wp_localize_script($handle, 'MY_AJAX', [ 'api' => admin_url( 'admin-ajax.php' ), 'action' => $action, 'nonce' => wp_create_nonce( $action ), ]); wp_enqueue_script($handle); } add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts_ajax' ); add_action( 'wp_ajax_my_ajax_action', 'my_ajax_event' ); add_action( 'wp_ajax_nopriv_my_ajax_action', 'my_ajax_event' ); function my_ajax_event() { $action = 'my_ajax_action'; if( check_ajax_referer($action, 'nonce', false) ) { $u_id = get_current_user_id(); $target_id = esc_html( $_POST['target_id'] ); update_user_meta( $u_id, 'allow', $target_id ); } die(); }
で質問なのですが、ボタンが複数あったときは、どのようにしたらよろしいのでしょうか?
つまりHTMLがこのようになっているときです。
▼HTML
<button type="button" data-target_id="1">このIDを許可</button> <button type="button" data-target_id="2">このIDを許可</button>
このようなときは、ボタン1つごとに別々のnonceを生成しなければならないのでしょうか?(もしそうであれば、それはどのように?)
それとも「nonce」は上のPHPだけあれば、ボタンがいくつあっても適切なセキュリティで処理されるのでしょうか?
「nonce」というのがよくわかっておらず以上のような疑問に至っておりますが、自力で解決できません。
どなたかお助け頂けますと幸いでございます。
宜しくお願い申し上げます。
- トピック「「nonce」の使い方について」には新たに返信することはできません。