Web 安全之内容安全策略CSP的用途及使用方法

内容安全策略(Content Security Policy,简称CSP)是一种以可信白名单作机制,来限制网站是否可以包含某些来源内容,缓解广泛的内容注入漏洞,比如 XSS。 简单来说,就是我们能够规定,我们的网站只接受我们指定的请求资源。默认配置下不允许执行内联代码(<script>块内容,内联事件,内联样式),以及禁止执行eval() , newFunction() , setTimeout([string], …) 和setInterval([string], …) 。

内容安全策略(Content Security Policy,简称CSP)还可以防护运营商内容劫持(广告)主要以白名单的形式配置可信任的内容来源,在网页中,能够使白名单中的内容正常执行(包含 JS,CSS,Image 等等),而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS),当然,也能够减少运营商劫持的内容注入攻击。

CSP可以由两种方式指定: HTTP Header 和 HTML。

通过定义在HTTP header 中使用:

"Content-Security-Policy:" 策略集

通过定义在 HTML meta标签中使用:

<meta http-equiv="content-security-policy" content="策略集">

策略是指定义 CSP 的语法内容。

如果 HTTP 头 与 meta 标签同时定义了 CSP,则会优先采用 HTTP 头的 。

定义后,凡是不符合 CSP策略的外部资源都会被阻止加载。

由于暂时设置内容安全策略只是为了防止运营商的内容劫持,而非安全性的设置,所以只要限制script-src的白名单即可减少运营商劫持的内容注入攻击。HTTP Header头的设置如下:

Content-Security-Policy:script-src 'unsafe-inline' 'unsafe-eval' http://*.mydomin.net http://*.mydomin.com.cn http://*.baidu.com http://*.cnzz.com http://*.qq.com;

更详细的指令请参照:https://cloud.tencent.com/developer/section/1189856

分享到:
此条目发表在 服务器 分类目录,贴了 标签。将固定链接加入收藏夹。

评论功能已关闭。