在我的管理面板中有一个案例,我需要调用驻留在自己php文件中的函数,并发出GET请求。此函数实际上是从数据库中删除条目。
因此,我想确保这不能从管理员用户以外的任何人调用。最好的方法是什么?请注意我的示例。php?文件名=…\'脚本将直接执行,并应在“管理”面板上刷新页面后返回。
我如何正确地确保这一点?在Wordpress默认安全措施的控制下,有没有更好的方法来做到这一点?
如果能够在php代码的上下文中执行get\\u选项,那也太好了。
SO网友:onetrickpony
阅读关于"Nonces".
创建一个并将其附加到URL:
$url = \'example.php?filename=whatever&nonce=\' . wp_create_nonce(\'my_sensitive_action\');
当您的请求得到满足时,请检查:
// here verify if the nonce was used before
if(wp_verify_nonce($_GET[\'nonce\'], \'my_sensitive_action\')){
// it\'s ok, it wasn\'t used before
}
这些nonce的有效性也有时间限制,比如一天左右。如果在此期间内未使用nonce,它将过期。。。