【问题标题】:How the WordPress nonce works?WordPress 随机数如何工作?
【发布时间】:2015-10-10 17:17:52
【问题描述】:

我在表单中添加了一个随机数,它工作正常,但我有一些问题。

如果表单被 10000 个用户同时使用,每个用户的 nonce 会不同?

WordPress每12小时生成一次nonce,但影响和改变他生活的因素有哪些?

如果我关闭浏览器,我会在重新打开浏览器时得到相同的随机数吗?

如果我关闭计算机并重新启动,我会有相同的 nonce 吗?

如果我使用不同的 IP 连接到 Internet,我将拥有相同的 nonce 吗?

如果我更改浏览器,我将拥有相同的 nonce 吗?

如果我删除浏览历史记录和 cookie,我将拥有相同的 nonce 吗?

【问题讨论】:

  • nonce - “使用一次的数字”。如果它被多人使用,那么它就不再是一个随机数了。
  • 这不是这个主题的真正答案,但到目前为止还不是:“存储在用户会话中。它们是存储在用户会话中的唯一令牌。......如果用户退出 WordPress,随机数将不再有效......”(复制自stackoverflow.com/questions/31535895/…

标签: php wordpress nonce


【解决方案1】:

WP nonce 函数创建一个与特定操作、用户和用户会话相关联的加密令牌。这意味着即使对于 10000 个用户,每个用户也将拥有自己的令牌。

WordPress每12小时生成一次nonce,但影响和改变他生活的因素有哪些?

它是通过wp_nonce_tick() 函数创建的,该函数通过一个过滤器nonce_life,并且可以通过这个过滤器进行修改。 wp_nonce_tick docs

如果我关闭浏览器,我在重新打开浏览器时会得到相同的随机数?

如果我关闭计算机并重新启动,我会得到相同的随机数吗?

如果我更换浏览器,我会得到相同的 nonce 吗?

如果您已登录并且您的会话相同,您将拥有相同的 nonce 令牌。

如果我使用不同的 IP 连接到 Internet,我将拥有相同的 nonce?

没有。您的会话将有所不同,并且将生成新的令牌。

如果我删除浏览历史记录和 cookie,我将拥有相同的 nonce?

不,您的会话将被更改,因为会话存储在浏览器 cookie 中。

您不应该只依赖随机数检查。您还需要确保检查current_user_can() 功能,因为它描述了in the documentation

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 2010-12-15
    • 2019-07-02
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多