問題描述

或者這是否打破了現在的目的,我不知道我不太明白嗎? 🙂

例如對於在頁面加載上運行的兩個 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; ?>' }
 });

最佳解決方案

僅在 init 掛鈎上調用 WordPress nonce creation function

Use the init or any subsequent action to call this function. Calling it outside of an action can lead to troubles. See #14024 for details.

由於 init 鈎子 「運行 WordPress 已經完成加載之後,而是在任何頭文件發送之前」,所以在每個 full-page 請求 (不是 ajax 請求) 上創建隨機數。因此,從技術上講,您可以在多個請求中使用相同的隨機數,但是您應該使其在每個請求上都是唯一的,正如其他答案所指出的那樣。


更多地瞭解什麼是廢物:

Nonces 作為安全令牌在每個 Ajax 請求上發送,以確保該請求是由用户打算的。

次佳解決方案

是的,隨便是很混亂。 🙂

雖然 nonce 的概念意味着它只使用一次,WordPress 不強制執行,技術上您可以多次使用隨機數。

然而,由於隨機數被用於驗證意圖 (如在你真正意味着執行特定的操作) – 不同的動作應該有不同的生成和檢查。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。