Reduce nonce lifespan

时间:2017-09-02 作者:3000

对于一个个人插件(不公开或商业),我构建了一个AJAX表单,其端点是一个自定义端点(RESTAPI)。

当访问包含我的表单的特定页面时,我会生成一个nonce。

然后,用户发送表单,我添加常规的标题(X-WP-Nonce) 在端点函数中,我验证了加载页面时第一次创建的nonce。

我希望我的假期是短暂的,也就是说,12个小时太多了。

我发现我可以使用apply_filters(\'nonce_life\', timeHere) 但我不知道这条线应该在哪里:应该在这条线之前吗?

$nonce = wp_create_nonce(\'wp_rest\');
此外:这条线是否会改变我的WP中任何nonce的寿命,或者这一更改是否只影响我的nonce?我不想破坏其他插件。

谢谢

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

是的,使用该过滤器将影响添加该过滤器后创建的所有nonce的使用寿命,并且会影响该过滤器的使用寿命。因此,最好是添加它,创建nonce,然后删除它:

function my_nonce_lifetime() {
    return 600; // 10 minutes
}
add_filter( \'nonce_life\', \'my_nonce_lifetime\' );
$nonce = wp_create_nonce(\'wp_rest\');
remove_filter( \'nonce_life\', \'my_nonce_lifetime\' );

结束

相关推荐

Cannot verify nonce

我将nonce创建为$nonce = wp_create_nonce(\"action\"); 然后将带有nonce的电子邮件发送给用户。在电子邮件中有指向页面的链接。在页面中,我以相同的方式形成nonce,并尝试使用wp_verify_nonce($nonce, \"action\"); ,它不工作,它总是无法验证,并返回false。我做错了什么?