如何配置 MySSL 企业版外链报告 Header
随着 MySSL 企业版的开发进度的推进,我们最近上线了 HTTPS 外链监控的功能。下面是该功能相关使用说明。
进入 MySSL 企业版:
你会获取到类似:https://2d89e693d66a49d6993df623e272311f.myssl-uri.com/api/csp-report 类似的 URL。这是我们为你分配的专属不安全外链的上报地址。
你拿到该地址需要做的是,将该地址添加到服务器的 header 处。
配置规则
在添加之前,你需要了解内容安全策略的配置规则:
- Content-Security-Policy:内容安全策略,当网站加载的内容违背了该策略,浏览器将会阻止该资源的加载,并上报。
 - Content-Security-Policy-Report-Only:内容安全策略仅报告,网站加载的资源违背了该策略仍然会被加载,并上报。
 
一般来说,你不知道自己添加的策略有什么问题,建议你先通过配置 Content-Security-Policy-Report-Only,然后在 MySSL EE 上查看相关报告之后并改正,最后改为 Content-Security-Policy。
常用配置项的说明:
style-src:指定样式表的加载来源。如style-src https: 'unsafe-inline'。img-src:指定图片的来源。如img-src https: data: https://xx.xxx.co。font-src:指定可提供网页字体的来源。如font-src https://themes.googleusercontent.com。child-src:用于列出适用于工作线程和嵌入的帧内容的网址。如child-src https://youtube.com。connect-src:用于限制可(通过 XHR、WebSockets 和 EventSource)连接的来源。media-src:用于限制允许传输视频和音频的来源。object-src:可对 Flash 和其他插件进行控制。default-src:默认策略,当你没有配置上面的内容策略时,默认使用。- report-uri:用于指定在违反内容安全政策时浏览器向其发送报告的网址。
 - base-uri:用于限制可在页面的 
<base>元素中显示的网址。 - upgrade-insecure-requests:指示 User Agent 将 HTTP 更改为 HTTPS,重写网址架构。 该指令适用于具有大量旧网址(需要重写)的网站,慎用。
 
一般来说,以 -src 结尾的都适用于 default-src,即在没有指定 xx-src 的情况下将默认使用 default-src。
例:
Content-Security-Policy-Report-Only "default-src https://example.com; font-src https://st.example.com"
这个策略,font-src 只能加载 https://st.example.com 的字体资源,不能加载 https://example.com 的字体资源。其它没有指定的均使用 default-src。
那么,以 xx-src 的内容可以填什么呢,一般可以填写:
'none':不执行任何匹配。'unsafe':与当前来源(而不是其子域)匹配。'unsafe-inline':允许使用内联 JavaScript 和 CSS。'unsafe-eval':允许使用类似 eval 的 text-to-JavaScript 机制。https::以https:开头的。data::以data:开头的。blob::以blob开头的。- 网址:直接指定网址。
 
这里列举 Nginx 和 Apache 相关例子,在添加该 header 之前请详细了解 Content-Security-Policy-Report-Only 的作用:
1、Nginx 如何配置
add_header Content-Security-Policy-Report-Only "default-src https: data: 'unsafe-inline' 'unsafe-eval' wss:; report-uri https://2d89e693d66a49d6993df623e272311f.myssl-uri.com/api/csp-report";
2、 Apache 如何配置
Header add Content-Security-Policy-Report-Only "default-src https: data: 'unsafe-inline' 'unsafe-eval' wss:; report-uri https://2d89e693d66a49d6993df623e272311f.myssl-uri.com/api/csp-report"
当 MySSL 企业版获取到上报的外链时,你会看到这样的画面:
如果你想了解更多有关内容安全响应头: