如何解决网站扫描发现的CSP: Wildcard Directive漏洞?
修复CSP: Wildcard Directive漏洞方案
你的CSP配置触发漏洞的核心原因是多个指令里使用了https:——这相当于允许所有HTTPS域名加载资源,属于过度宽松的权限配置,存在被恶意利用的风险。修复步骤如下:
1. 梳理实际依赖的外部域名
先排查网站运行必须的外部资源,整理出具体域名列表:
- 第三方脚本(统计工具、支付SDK等)的域名
- 外部样式、字体、图片的CDN域名
- 接口请求的目标域名
拒绝使用通配符,只保留实际需要的域名。
2. 替换通配符为具体域名
将每个指令中的https:替换为你梳理出的具体域名,同时优化冗余配置:
base-uri不需要配置nonce(nonce用于脚本/样式的权限控制,和<base>标签无关),直接移除多余的nonce和https:,仅保留'self'即可。- 若某个指令无外部资源需求,直接去掉
https:,保留'self'和必要的nonce。
修改后的示例CSP
default-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://cdn.yourdomain.com; script-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://cdn.yourdomain.com https://analytics.yourpartner.com; style-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://cdn.yourdomain.com; connect-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://api.yourdomain.com; font-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://cdn.yourdomain.com; img-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https://cdn.yourdomain.com https://user-uploads.yourdomain.com; base-uri 'self'; form-action 'none'; frame-src 'self'; frame-ancestors 'self'
3. 测试验证
修改配置后,全面测试网站功能:
- 检查浏览器控制台是否有CSP拦截报错
- 确认所有脚本、样式、图片、接口请求正常加载
- 若出现资源被阻止的情况,补充对应域名到CSP指令中
内容的提问来源于stack exchange,提问作者Sayed Farhan
相关产品推荐
相关产品推荐

