我读过 nonces 只能使用一次,在一个 ajax 请求之后,你应该发出一个新的 nonce,这样在下一个 ajax 请求时,一个新的 nonce 将被发送到服务器。
但是,我只是使用相同的 nonce 令牌测试了重复的 ajax 请求,并且针对每个请求 wp_verify_nonce
同样返回 true,这意味着它可以重复使用几十次。
这是故意的,还是一个错误?
我是否仍然需要为每个 ajax 请求发出新的随机数,或者同一个随机数是否可以继续为所有未来的请求工作?
在 WordPress 中,随机数特定于用户、正在执行的操作和时间。 关于时间,nonce 的有效期为 24 小时,每 12 小时更改一次。 这被认为是一个可以接受的权衡,因为使用一次使用的实数将涉及添加一个跟踪系统并存储使用过的随机数。
Nonce 也经过哈希处理,因此 NONCE_SALT 常量也将成为生成的 nonce 的一部分。 更改 NONCE_SALT 将立即使所有随机数失效。
您应该每次都发出一个新的随机数。 这样一来,如果将来需要调整时间或方法,那么您的代码将继续适当地处理它。
