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

Magento 2中Content Security Policy配置无效问题求助

Magento 2中Yellow.ai聊天脚本CSP连接错误解决方案

问题分析

错误提示显示WebSocket连接wss://r0.cloud.yellow.ai/websocket/违反CSP的connect-src指令,尽管已配置csp_whitelist.xml但未生效,核心原因可能是路径匹配不一致、配置位置错误或缓存未清除。

解决步骤

1. 修正WebSocket路径匹配

错误中的路径末尾带有斜杠/,而你配置的路径无斜杠,导致匹配失败。修改connect-src规则,确保路径完全一致,或使用通配符覆盖:

<policy id="connect-src">
    <values>
        <!-- 完全匹配错误中的路径 -->
        <value id="yellow-ai-websocket" type="source">wss://r0.cloud.yellow.ai/websocket/</value>
        <!-- 通配符覆盖所有yellow.ai下的连接 -->
        <value id="connect-yellow-ai" type="host">*.yellow.ai</value>
    </values>
</policy>

2. 确认配置文件位置正确性

csp_whitelist.xml必须放置在自定义模块的etc目录下,例如:
app/code/YourVendor/YourCustomModule/etc/csp_whitelist.xml
Magento不会读取主题或其他非模块目录下的该配置文件。

3. 清除缓存并重新部署

执行以下命令刷新缓存与静态资源,确保配置生效:

# 清除缓存
bin/magento cache:clean
bin/magento cache:flush

# 部署静态资源(生产模式需加-f强制覆盖)
bin/magento setup:static-content:deploy -f

# 生产模式额外执行代码编译
bin/magento setup:di:compile

4. 检查CSP执行模式

进入Magento后台:Stores > Configuration > Security > Content Security Policy,确认Mode设置:

  • 若为Report Only:仅记录错误不阻止连接,需切换为Restrict Mode才能让白名单生效
  • 若已为Restrict Mode,检查connect-src规则是否包含你的白名单条目

5. 排查第三方模块冲突

部分第三方模块(如支付、分析工具)可能覆盖CSP规则。可通过浏览器开发者工具查看响应头中的Content-Security-Policy值,确认connect-src是否包含wss://r0.cloud.yellow.ai/websocket/或*.yellow.ai。若未包含,需调整自定义模块的加载优先级,确保你的配置优先生效。

验证

修改完成后,刷新前端页面,查看浏览器控制台是否仍有CSP错误,同时检查响应头的CSP规则是否已包含目标白名单条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:01:32