📅  最后修改于: 2023-12-03 15:27:02.397000             🧑  作者: Mango
内容安全策略(Content Security Policy,CSP)是一种安全机制,用于减轻和缓解跨站点脚本(XSS)、数据注入攻击和其他代码注入攻击等常见攻击形式所造成的影响。CSP 通过白名单模式控制页面的内容加载,可以限制页面内容的来源,并防止恶意脚本的运行,极大地提高了页面的安全性。
CSP 通过响应头或 meta 标签来进行配置。例如,以下代码是将 CSP 配置为只允许加载同一源(同一站点)内的脚本:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
上面的代码中,default-src
命令指定了默认的源策略,'self'
指定的是相同源,也就是只允许从同一站点加载页面内容。
CSP 还支持以下命令:
child-src
:为 iframe、frame、worker、embed、applet 元素配置策略connect-src
:配置XHR(XMLHttpRequest)请求的源策略default-src
:默认的请求策略,如果未显式指定某种类型的请求策略,则使用此策略font-src
:为字体配置策略img-src
:为图像配置策略manifest-src
:为应用程序清单文件配置策略media-src
:为音频和视频配置策略object-src
:为 object 元素上的资源配置策略script-src
:为脚本配置策略style-src
:为样式配置策略worker-src
:为 Web worker 配置策略CSP 的兼容性在不同浏览器中有所差异。在大部分浏览器中,支持响应头的方式进行 CSP 配置,但在 IE、Safari 等浏览器中,只支持 meta 标签的方式进行配置,并且有着不同的语法格式。
CSP 是一种强大的安全机制,用于减轻和缓解跨站点脚本(XSS)等攻击的影响。在Javascript中使用CSP,可以为我们的应用程序提供更安全的保障。在配置 CSP 时,我们需要充分考虑浏览器的兼容性问题,并进行针对性的配置。