WordPress nonces存储在哪里?

时间:2015-07-31 10:54:18

标签: php wordpress

我试图找出WordPress存储所有nonce的位置。但是无法找到线索。 我首先检查了数据库,但无法找到任何名为wp_nonces的表。

3 个答案:

答案 0 :(得分:14)

我在11个月前发布了这个问题。

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

但是他们都没有解决WordPress nonce的存储位置问题。这就是我真正的问题。

所以,我挖出了WordPress源代码,并能够找到WordPress nonce的正确存储位置。

它们存储在用户会话中。

它们是存储在用户会话中的唯一令牌。 Nonce有一个确定的寿命。

如果用户退出WordPress,则随机数将不再有效。

PS:我问了这个问题,现在我发布这个答案来帮助别人:)

答案 1 :(得分:2)

Nonces不会直接存储在任何地方,它们是使用函数wp_create_nonce创建的,并使用wp_verify_nonce进行验证。

这些函数反过来使用wp_hash将生命周期,自定义字符串,user_id和存储在wp_usermeta中的会话令牌与密钥session_tokens一起散列。

答案 2 :(得分:-1)

Nonce是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

添加隐藏的_nonce字段(以Contact Form 7为主要示例)通常是将表单实现到WordPress时的好习惯,因为它可以防止跨站点请求伪造(CSRF)等。

<强>资源: