wp_verify_nonce() 是什么意思?
我已阅读 WordPress 上此函数的 参考,但我仍然不明白此函数是什么确实如此。
我正在阅读有关在 WordPress 中创建元框的教程,并且我在保存数据的函数中包含以下代码:
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
有人可以简要解释一下 wp_verify_nonce() 的含义是什么?
I've read the reference of this function on Wordpress but i still don't understand what this function really does.
I'm reading a tutorial about creating a meta box in wordpress and I have this code inside the function which saves the data:
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
Can someone explain briefly what is the meaning of wp_verify_nonce() ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
nonce 是一个“使用过一次的数字”,WP 使用该代码来确保 POST 数据来自安全的地方。这对于确保您的插件最终不会消化来自不安全来源的数据很有用(请参阅Cross-站点请求伪造)。
Mark Jaquith 的这篇博文对于理解它们很有用。
要创建随机数,您必须为
wp_create_nonce
指定一个特定字符串,为随机数提供“上下文”。它返回一个字符串——随机数本身。然后,您可以将此随机数包含在 POST 请求中。然后,接收页面应该使用相同的上下文创建自己的随机数,并查看它们是否匹配。在本例中,给定的上下文是
plugin_basename(__FILE__)
。每当从同一个插件中调用它时,都会生成相同的字符串(请参阅此处)。当您的
wp_verify_nonce
收到在 Mark 指定的相同情况下使用相同上下文字符串创建的随机数时,它会返回 true。简而言之:
如果 wp_verify_nonce 返回 false,则返回 true。
wp_verify_nonce
的第一个参数:要检查的随机数。此代码从 post 请求中获取随机数,存储在 $_POST 全局变量中。wp_verify_nonce
的第二个参数:用于生成新随机数的上下文,将根据该新随机数检查第一个随机数。如果随机数不匹配,则停止执行当前函数,返回变量
$post_id
。The nonce is a 'number used once' - a code that WP uses to make sure that POST data is coming from a safe place. This is useful to make sure that your plugin does not end up digesting data from an unsafe source (see Cross-Site Request Forgery).
This blog post by Mark Jaquith is useful for understanding them.
To create a nonce you must give
wp_create_nonce
a certain string, providing the 'context' for the nonce. It gives you back a string - the nonce itself. You then include this nonce as part of your POST request. The receiving page should then create a nonce of its own, using the same context, and see if they match up.In this case, the context given is
plugin_basename(__FILE__)
. This will generate the same string whenever it is called from within the same plugin (see here).When your
wp_verify_nonce
recieves a nonce created under the same circumstances as specified by Mark, with the same context string, it returns true.In short:
returns true if wp_verify_nonce returns false.
First argument to
wp_verify_nonce
: the nonce to check. This code gets the nonce out of the post request, stored in the $_POST global.Second argument to
wp_verify_nonce
: the context for generating the new nonce against which the first will be checked.If the nonce doesn't match, stop executing the current function, returning the variable
$post_id
.