DaoKeCMS插件开发中常见的CSRF遗漏坑:
后台表单处理POST请求时忘记校验CSRF token,导致安全漏洞。
// 错误!缺少CSRF校验
if ($_POST) {
$data = post('title');
DB::insert('items', ['title' => $data]);
}
// 正确!包含CSRF校验
if ($_POST) {
csrf_verify() or die('CSRF验证失败');
$data = post('title');
DB::insert('items', ['title' => $data]);
}
// 表单中输出_csrf隐藏域
echo '';