【问题标题】:Can I make my wordpress nonce have a quicker expiration? (via wp_verify_nonce)我可以让我的 wordpress 随机数更快过期吗? (通过 wp_verify_nonce)
【发布时间】:2012-06-08 03:14:46
【问题描述】:

Wordpress 有一个随机数机制,插件可以将随机数发送到客户端代码中,然后在客户端与服务器通信时验证随机数。

我查看了wp_verify_nonce() 的源代码(在 wp-includes/pluggable.php 中),如果 nonce 是 24 小时或更短时间,它会返回 true。

我是否可以创建一个可以验证为...假设... .1 分钟前的随机数?

怎么样?

我认为有一种方法可以通过add_filter()nonce_life。但我不希望无处不在的随机数短命。我只希望我的插件使用的 nonce 寿命很短。

【问题讨论】:

    标签: wordpress nonce


    【解决方案1】:

    我发现关于 wordpress nonce 的文档很少。

    虽然代码本身不是很复杂,并且有一种方法可以简单地替换 wp_verify_nonce() 函数,但我相信在整个 wordpress 中的很多地方都使用了 nonce,我不确定我的替换不会破坏其他事情。

    由于这里或其他地方没有任何有用的建议,我放弃了让 我的 nonce 更快过期的想法,只是添加了我自己的 nonce/timestamp 字段。

    我正在编写的插件生成一个随机数,然后将其嵌入到脚本块中,然后在网页中呈现。当页面中的 Javascript 与 wordpress admin-ajax.php 通信时,它会发回 nonce。然后,Wordpress 使用 wp_verify_nonce() 验证随机数,如果随机数没有过期,则允许请求 - 12 小时或 24 小时,如您所愿。此检查还验证调用者的身份。

    我所做的只是生成另一个随机数,一个加密的时间戳。它以与 WP nonce 相同的方式嵌入到 javascript 脚本块中。它以相同的方式重新传输,并以类似的方式进行验证:我解密并检查时间戳是“最近的”。
    不同之处在于我的插件控制验证,因此我可以设置“新近度”的阈值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      相关资源
      最近更新 更多