You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress站点Acunetix检测出CORS origin验证失败该如何处理?

先明确判断标准:按需选择是否修改

你不需要直接默认保留或者强行修改,先确认你的站点是否有跨域调用WordPress REST API的实际需求即可:

  • 如果你的站点有前后端分离部署、第三方业务系统合法调用/wp-json接口的需求,且所有鉴权接口都做了严格的权限校验,这个Acunetix告警属于可忽略的预期配置,不需要做修改
  • 如果你的站点完全没有跨域调用REST API的需求,或者只需要给少数指定域名开跨域权限,建议修改配置消除安全风险

修复注意事项

不要直接修改WordPress核心文件rest-api.php,后续WordPress版本更新会直接覆盖你修改的内容,正确的做法是用WordPress自带的钩子逻辑,在当前主题的functions.php文件中新增代码覆盖默认配置即可。

场景1:完全禁止跨域调用REST API(只允许同域调用)

添加如下代码:

add_filter('rest_pre_serve_request', function($value) {
    // 提前移除默认的CORS响应头生成逻辑
    remove_action('rest_pre_serve_request', 'rest_send_cors_headers');
    $site_origin = get_site_url();
    $request_origin = get_http_origin();
    // 仅同域请求返回跨域头
    if ($request_origin && $request_origin === $site_origin) {
        header('Access-Control-Allow-Origin: ' . $site_origin);
        header('Access-Control-Allow-Methods: OPTIONS, GET, POST, PUT, PATCH, DELETE');
        header('Access-Control-Allow-Credentials: true');
        header('Vary: Origin');
    }
    return $value;
}, 9);

场景2:仅允许指定域名跨域调用

添加如下代码,按需修改白名单列表即可:

add_filter('rest_pre_serve_request', function($value) {
    remove_action('rest_pre_serve_request', 'rest_send_cors_headers');
    // 可跨域调用的域名白名单
    $allow_origins = [
        'https://www.your-business-domain.com',
        'https://app.your-domain.com'
    ];
    $request_origin = get_http_origin();
    if ($request_origin && in_array($request_origin, $allow_origins)) {
        header('Access-Control-Allow-Origin: ' . $request_origin);
        header('Access-Control-Allow-Methods: OPTIONS, GET, POST, PUT, PATCH, DELETE');
        header('Access-Control-Allow-Credentials: true');
        header('Vary: Origin');
    }
    return $value;
}, 9);

配置验证方法

修改完成后可以用curl命令验证是否生效,模拟非白名单域名的请求:
curl -I -H "Origin: https://test-unauthorized-domain.com" https://你的站点域名/wp-json/wp/v2/posts
如果返回的响应头中没有Access-Control-Allow-Origin字段,或者返回的是你白名单内的域名,就说明配置生效。

内容的提问来源于stack exchange,提问作者Glauk Abazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:27:05