Should nonce be sanitized?

时间:2017-02-15 作者:Sudar

一般的指导原则是,我们应该在使用之前清理所有用户输入。

现在我的问题是,这是否适用于nonce。

哪一个是正确的?

wp_verify_nonce( sanitize_text_field( $_GET[\'some_nonce\'] ), \'some_nonce\' );

wp_verify_nonce( _GET[\'some_nonce\'], \'some_nonce\' );

1 个回复
最合适的回答,由SO网友:Fayaz 整理而成

当您将用户输入插入数据库或以HTML等格式输出时,需要进行清理。在这里,您只需进行字符串比较。

wp_verify_nonce 功能检查$nonce 值如下:

if ( hash_equals( $expected, $nonce ) ) {
    return 1;
}
为此,你不需要消毒。因此,以下情况很好:

wp_verify_nonce( $_GET[\'some_nonce\'], \'some_nonce\' );

相关推荐

Using nonce in menu item

我在主标题菜单中有一个注销链接,当你点击链接注销时,你会被重定向到页面,询问你是否真的想注销。我知道它这样做是因为菜单URL中没有nonce。我的问题是:是否可以在编辑菜单屏幕的CMS外观>菜单中添加nonce?url类似于:example.com/wp-login.php?action=logout&redirect_to=http://example.com/myaccount/&_wpnonce=只是为了好玩我试着加上wp_create_nonce(\'logout\') 到最