Wordpress wp\u verify\u nonce()是什么意思?

Wordpress wp\u verify\u nonce()是什么意思?,wordpress,meta-boxes,Wordpress,Meta Boxes,我已经在Wordpress上阅读了这个函数的详细说明,但是我仍然不明白这个函数到底做了什么 我正在阅读一篇关于在wordpress中创建元框的教程,我在保存数据的函数中有以下代码: if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) { return $post_id; } 有人能简要解释一下wp\u verify\u nonce(

我已经在Wordpress上阅读了这个函数的详细说明,但是我仍然不明白这个函数到底做了什么

我正在阅读一篇关于在wordpress中创建元框的教程,我在保存数据的函数中有以下代码:

if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
                return $post_id;
}

有人能简要解释一下wp\u verify\u nonce()的含义吗?

nonce是一个“使用一次的数字”——wp用来确保POST数据来自安全位置的代码。这有助于确保插件不会最终消化来自不安全源的数据(请参阅)

有助于理解它们

[nonce]对于WordPress安装、WordPress用户、操作、操作对象和操作时间(24小时窗口)是唯一的。这意味着,如果这些东西中的任何一个发生变化,则nonce无效。所以,如果你(不知何故)截获了我正在使用的一个nonce,首先,你只有24小时的时间来使用这个键试图欺骗我

要创建nonce,必须为
wp\u create\u nonce
指定一个字符串,为nonce提供“上下文”。它会返回一个字符串-nonce本身。然后,您将此临时值作为POST请求的一部分。然后,接收页面应该使用相同的上下文创建自己的nonce,并查看它们是否匹配

在本例中,给出的上下文是
plugin\u basename(\uuu文件\uu)
。无论何时从同一插件中调用它,都将生成相同的字符串(请参阅)

当您的
wp\u verify\u nonce
接收到在Mark指定的相同环境下使用相同上下文字符串创建的nonce时,它返回true

简言之:

!wp_verify_nonce
如果wp\u verify\u nonce返回false,则返回true

($_POST[$meta_box['name'].'_noncename'], 
wp\u verify\u nonce
的第一个参数:要检查的nonce。此代码从post请求中获取nonce,该nonce存储在$\u post全局文件中

plugin_basename(__FILE__) )
wp\u verify\u nonce
的第二个参数:用于生成新nonce的上下文,第一个nonce将根据该上下文进行检查

{ return $post_id; }

如果nonce不匹配,停止执行当前函数,返回变量
$post\u id

很好的答案。1小的补充(如果你想在谷歌上搜索更多信息,这会很有用):“确保帖子数据来自某个地方”=防止CSRF(“跨站点请求伪造”)。