HTTP Content-Security-Policy缺失,快速解决

Content-Security-Policy内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

注意:CSP开启可能会导致js、css出现报错,所以需要正确的配置开始CSP策略。

启用 CSP方法:一种是通过 HTTP 头信息的Content-Security-Policy的字段,另一种是通过网页的meta标签。

第一种:修改 nginx 配置文件

在nginx.conf 配置文件中,增加如下配置内容:

add_header Content-Security-Policy "default-src 'self' localhost:8080 'unsafe-inline' 'unsafe-eval' blob: data: ;";

第二种:通过网页的meta标签

该指令说明:允许自身css、js和高德地图api、地图数据。

CSP 指令说明:
default-src : 定义针对所有类型(js/image/css/font/ajax/iframe/多媒体等)资源的默认加载策略,如果某类型资源没有单独定义策略,就使用默认的。
script-src : 定义针对 JavaScript 的加载策略。
style-src : 定义针对样式的加载策略。

worker-src:worker脚本。
img-src : 定义针对图片的加载策略。
font-src : 定义针对字体的加载策略。
media-src : 定义针对多媒体的加载策略,例如:音频标签