問題描述
或者這是否打破了現在的目的,我不知道我不太明白嗎? 🙂
例如對於在頁面載入上執行的兩個 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。