我相信有多种方法可以使用nonce。
最近我用过wp_nonce_field(\'any_nonce_value\');
这将创建<input type="hidden" id="_wpnonce" name="_wpnonce" value="111bc61eba">
可以使用check_admin_referer(\'any_nonce_value\');
另一种方法是使用<input type="hidden" name="_wp_nonce_or_anything_we_desire" value="<?php echo wp_create_nonce(\'any_nonce_value\'); ?>">
我们可以使用wp_nonce_verify($_POST[\'_wp_nonce_or_anything_we_desire\'], \'any_nonce_value\')
我对nonce的理解正确吗?So here\'s the confusion
尝试创建自定义元数据库时,请添加自定义列、管理自定义列并最终保存帖子。我们需要在什么地方通过临时命令。让我的问题更清楚。
当我们连接到save\\u post时,建议在https://codex.wordpress.org/Plugin_API/Action_Reference/quick_edit_custom_box
$_POST += array("{$slug}_edit_nonce" => \'\');
if ( !wp_verify_nonce( $_POST["{$slug}_edit_nonce"],
plugin_basename( __FILE__ ) ) )
{
return;
}
那么,我们应该创建一个自定义nonce吗?创建metabox时?或者我们应该在这里使用自定义的post类型slug,而rest由Wordpress管理?期待你的回答,希望这能帮助像我这样的人!谢谢
最合适的回答,由SO网友:Tom J Nowell 整理而成
尝试创建自定义元数据库时,请添加自定义列、管理自定义列并最终保存帖子。我们需要在什么地方通过临时命令。让我的问题更清楚。
这是不正确的,您不应该在元数据库中使用nonce,因为在更新或发布时,所有这些信息都会在完整请求中一次性发送,而WP已经为您处理了这些信息。
我认为这里的困惑在于,它从来没有解释过nonce应该保护什么,以及为什么要使用它。
在myspace时代,你可以在个人资料中添加一个图像标签,然后设置src="http://myspace.com/logout"
, 所有访问你个人资料的人都会被注销。
另一方面,nonce是一个对时间敏感的值,它通过确保您单击了按钮,或是因为您实际单击了该对象而执行了该操作,而不是因为CSRF攻击,来防止出现这种情况。
所以,如果你正在做某件事,那么可以使用nonce。如果您只是在读取值,那么没有必要。多个nonce也不会添加保护,因此元盒
而且check_admin_referer
和wp_nonce_verify
不一样:
wp_nonce_verify
字面上只需检查noncecheck_admin_referer
呼叫wp_nonce_verify
在内部,但它也基于结果执行操作,如果失败,它将退出/中止,并检查referer值wp_nonce_verify
仅检查nonce并返回true/false,由您使用该值执行操作wp_create_nonce
和wp_nonce_field
wp_create_nonce
创建nonce值。由你来做点什么wp_nonce_field
输出整个隐藏字段,并调用wp_create_nonce
在内部,以及其他一些东西是否认为它们是buy_brick()
和build wall()