Drupal网站Spotify播客嵌入遇Content Security Policy问题(仅Safari)
解决Drupal中Safari浏览器嵌入Spotify播客的CSP问题
问题根源
错误提示明确说明:https://embed-standalone.spotify.com未被包含在内容安全策略(CSP)的child-src或default-src指令中,导致Safari拦截了嵌入内容的加载。你尝试的meta标签CSP失效,通常是因为Drupal通过HTTP响应头设置了优先级更高的CSP规则,meta标签的配置会被覆盖。
解决步骤
1. 检查Drupal的CSP后台配置
- 登录Drupal后台,进入配置 > 内容安全策略(一般由Security Kit这类CSP管理模块提供入口)
- 查看当前生效的CSP规则,确认是否存在
child-src或default-src指令,以及是否包含Spotify的域名
2. 更新CSP规则
在对应的指令中添加Spotify的嵌入域名:
- 若使用
child-src,修改为:child-src 'self' https://embed-standalone.spotify.com; - 若使用
default-src,修改为:default-src 'self' https://embed-standalone.spotify.com;
注意:保留原有允许的其他域名,不要覆盖现有规则
3. 验证配置效果
- 保存配置后刷新页面,打开Safari开发者控制台
- 检查是否仍有CSP相关错误,同时查看页面响应头中的
Content-Security-Policy字段,确认Spotify域名已被添加
4. 无CSP管理模块时的替代方案
如果未使用专门的CSP模块,可通过服务器配置添加HTTP头:
- Apache服务器:修改主题目录下的
.htaccess文件,添加
Header set Content-Security-Policy "child-src 'self' https://embed-standalone.spotify.com;"
- Nginx服务器:在站点配置文件中添加
add_header Content-Security-Policy "child-src 'self' https://embed-standalone.spotify.com;";
修改服务器配置后需重启对应服务才能生效
内容的提问来源于stack exchange,提问作者Senna Oudshoorn
相关产品推荐
相关产品推荐

