今天调试WordPress插件时发现个问题,AJAX处理忘记加权限验证了。直接用wp_ajax_和wp_ajax_nopriv_钩子确实方便,但要是不检查用户权限,那可就危险了。万一有人恶意构造请求,分分钟就能操作不该碰的数据。赶紧加上current_user_can()来检测用户权限,这才安心点。其实还可以再加一层随机数验证,用wp_create_nonce()生成随机数,前端发请求带上,后端用check_ajax_referer()来校验。
安全问题真是不能大意啊。
add_action('wp_ajax_secure_action', 'handle_secure_action');
function handle_secure_action() {
check_ajax_referer('my_secure_nonce', 'security');
if (!current_user_can('edit_posts')) {
wp_send_json_error('没权限哦');
}
// 处理逻辑...
}安全问题真是不能大意啊。
登录/注册