我试图找出WordPress存储所有nonce的位置。但是无法找到线索。 我首先检查了数据库,但无法找到任何名为wp_nonces的表。
答案 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)等。
<强>资源:强>