苹果cms 跨域安全策略,禁止调用远程js等文件执行
以下代码用csp安全策略建立白名单,只允许加载白名单域名内的文件。有效防止木马 跨域加载跳转。
https://www.sxrfwedu.com为主域名 https://www.shankubf.com为远程域名
代码如下:
<meta http-equiv="Content-Security-Policy" content="
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.sxrfwedu.com;
style-src 'self' 'unsafe-inline' https://www.sxrfwedu.com ;
img-src 'self' data: https://www.sxrfwedu.com;
media-src 'self' https://www.sxrfwedu.com;
frame-src 'self' https://www.sxrfwedu.com https://www.shankubf.com;
connect-src 'self' https://www.sxrfwedu.com;
">
解释如下
default-src: 默认加载策略,这里限制为当前域名。
script-src: 限制脚本来源,允许白名单域名的 JavaScript。
style-src: 限制样式来源,允许内联样式及白名单域名的样式。
img-src: 限制图片来源,允许白名单域名及 data:(本地嵌入图片)。
media-src: 限制音视频来源,允许白名单域名。
frame-src: 限制嵌套框架(如 iframe)来源。
connect-src: 限制 AJAX 请求和 WebSocket 连接来源。
安全选项:
'self': 限制为同源加载。
'unsafe-inline' 和 'unsafe-eval': 如果业务需要内联 JavaScript 和 eval,必须启用;否则建议删除。
如何配置:
1.必须全部使用m3u8解析,这样远程只用修改远程调用域名即可
2如果是远程调用多个请在尾部补充域名 frame-src 'self' https://www.sxrfwedu.com https://v.gsuus.com https://www.shankubf.com;
3如果m3u8 播放器是本地文件,那么只需要添加本地域名就可以
<meta http-equiv="Content-Security-Policy" content="
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.sxrfwedu.com;
style-src 'self' 'unsafe-inline' https://www.sxrfwedu.com ;
img-src 'self' data: https://www.sxrfwedu.com;
media-src 'self' https://www.sxrfwedu.com;
frame-src 'self' https://www.sxrfwedu.com;
connect-src 'self' https://www.sxrfwedu.com;
">
当然你可以配置到web.comfig中
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.sxrfwedu.com;
style-src 'self' 'unsafe-inline' https://www.sxrfwedu.com;
img-src 'self' data: https://www.sxrfwedu.com;
media-src 'self' https://www.sxrfwedu.com;
frame-src 'self' https://www.sxrfwedu.com https://www.shankubf.com;
connect-src 'self' https://www.sxrfwedu.com;
" />
</customHeaders>
</httpProtocol>
<rewrite>