zuz*_*nen 4 wordpress meta-boxes
我已经在Wordpress上阅读了这个函数的参考,但我仍然不明白这个函数到底做了什么.
我正在阅读有关在wordpress中创建元框的教程,我在保存数据的函数中有这个代码:
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
Run Code Online (Sandbox Code Playgroud)
有人可以简要解释一下wp_verify_nonce()的含义是什么?
djb*_*djb 12
nonce是一个'使用过一次的号码' - WP用来确保POST数据来自安全地方的代码.这有助于确保您的插件不会最终消化来自不安全源的数据(请参阅跨站点请求伪造).
Mark Jaquith撰写的这篇博文有助于理解它们.
[nonces]对于WordPress安装,WordPress用户,操作,操作对象以及操作时间(24小时窗口)是唯一的.这意味着如果这些事情中的任何一个发生变化,则nonce无效.因此,如果你(以某种方式)拦截了我使用的nonce,你首先只需要24小时就可以使用这个键来欺骗我.
要创建一个nonce,你必须给出wp_create_nonce一个特定的字符串,为nonce提供'context'.它会返回一个字符串 - nonce本身.然后,您将此随机数作为POST请求的一部分包含在内.然后,接收页面应使用相同的上下文创建自己的随机数,并查看它们是否匹配.
在这种情况下,给出的上下文是plugin_basename(__FILE__).每当从同一个插件中调用它时,这将生成相同的字符串(请参阅此处).
当您wp_verify_nonce收到在Mark指定的相同环境下创建的随机数时,使用相同的上下文字符串,它将返回true.
简而言之:
!wp_verify_nonce
Run Code Online (Sandbox Code Playgroud)
如果wp_verify_nonce返回false,则返回true.
($_POST[$meta_box['name'].'_noncename'],
Run Code Online (Sandbox Code Playgroud)
第一个参数wp_verify_nonce:要检查的随机数.此代码从post请求中获取nonce,存储在$ _POST全局中.
plugin_basename(__FILE__) )
Run Code Online (Sandbox Code Playgroud)
第二个参数wp_verify_nonce:用于生成新nonce的上下文,第一个将被检查.
{ return $post_id; }
Run Code Online (Sandbox Code Playgroud)
如果nonce不匹配,则停止执行当前函数,返回变量$post_id.
| 归档时间: |
|
| 查看次数: |
6710 次 |
| 最近记录: |