Php WordPress nonce存储在哪里?

Php WordPress nonce存储在哪里?,php,wordpress,Php,Wordpress,我想知道WordPress在哪里存储所有的nonce。但却找不到线索。 我首先检查了数据库,但找不到任何名为wp_nonces的表。nonces是WordPress生成的一次性标记,用于验证各种请求,例如添加评论、删除帖子、删除用户等 它们不存储在任何地方,也不需要存储在任何地方 以下例,;在WordPress中管理内容时,Bin链接可能如下所示: http://www.example.com/wp-admin/post.php?post=1337&action=trash&_wpnonce=3

我想知道WordPress在哪里存储所有的nonce。但却找不到线索。
我首先检查了数据库,但找不到任何名为wp_nonces的表。

nonces是WordPress生成的一次性标记,用于验证各种请求,例如添加评论、删除帖子、删除用户等

它们不存储在任何地方,也不需要存储在任何地方

以下例,;在WordPress中管理内容时,Bin链接可能如下所示:

http://www.example.com/wp-admin/post.php?post=1337&action=trash&_wpnonce=369f188682

但是,如果要尝试将URL中页面/帖子的ID更改为其他内容(请参见下文),则nonce将不再有效,返回403错误,并显示:“是否确实要执行此操作?”

http://www.example.com/wp-admin/post.php?post=9100&action=trash&_wpnonce=369f188682

在WordPress中实现表单时,添加一个隐藏的
\u nonce
字段(作为一个主要示例)通常是一个好的做法,因为它可以防止跨站点请求伪造(CSRF)等

资源:


nonce不是直接存储在任何地方,而是使用函数创建并使用验证


这些函数依次使用
wp\u hash
将生命周期、自定义字符串、用户id和存储在wp\u usermeta中的会话令牌与密钥
session\u令牌一起散列在一起

我收到的所有答案都很好,对我帮助很大

但它们都没有提到WordPress nonce的存储位置。这就是我真正的问题所在

因此,我挖掘了WordPress源代码,找到了WordPress nonce的正确存储位置

它们存储在用户会话中

它们是存储在用户会话中的唯一令牌。nonce具有定义的寿命

如果用户注销WordPress,nonce将不再有效


PS:我问了这个问题,现在我发布这个答案是为了帮助其他人:)

对于那些不熟悉nonce的人:。这仍然不能回答我的问题。如果WordPress没有在任何地方存储nonce,那么它如何验证它们呢?:)From:“nonce对于当前用户的会话是唯一的,因此如果用户异步登录或注销,页面上的任何nonce都将不再有效。”@bluemwhitew此时我的问题是:用户会话的含义是什么?它是通过php
session\u start()
生成的会话还是其他什么。据我所知,wordpress不使用php会话。一件很重要的事。虽然注销时nonce确实会贬值,但nonce与身份验证本身无关。这些是不同的过程。默认情况下,验证由WordPress中的Cookie完成。例如,如果您试图通过WP restapi访问受保护的帖子,并提供即时消息,则即使您登录,您的请求也将被拒绝。您必须使用JWT来验证您的API请求。nonce本身不提供任何用户身份验证。nonce不存储在任何地方,它们是根据一些输入数据动态计算和验证的。