最近林林总总收到客户投诉,说是app被植入广告代码了,无奈,上了劫持上报工具,检测发现,有的客户web被植入大量广告信息,无意中发现了一个比较不错的解决方案,那就是使用CSP(Content-Security-Policy),内容安全策略:
CSP
定义
CSP 全称为 Content Security Policy,即内容安全策略。主要以白名单的形式配置可信任的内容来源,在网页中,能够使白名单中的内容正常执行(包含 JS,CSS,Image 等等),而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS),当然,也能够减少运营商劫持的内容注入攻击。
使用方式一:Meta标签
在 HTML 的 Head 中添加如下 Meta 标签,将在符合 CSP 标准的浏览器中使非同源的 script 不被加载执行。不支持 CSP 的浏览器将自动会忽略 CSP 的信息,不会有什么影响。具体兼容性可在本文末尾参考资料中找到
- <meta http-equiv="Content-Security-Policy" content="default-src 'self'">
使用方式二:Http 头部
- Content-Security-Policy:
- default-src 'unsafe-inline' 'unsafe-eval' 'self' *.vincentguo.cn *.yunetidc.com *.baidu.com *.cnzz.com *.c-cnzz.com *.duoshuo.com *.jiathis.com;report-uri /error/csp
需要说明的的是:多个域名中间要有空格;report-uri /error/csp 的作用为:遇到劫持,直接上报到地址:/error/csp
更多详细参考资料:
感谢:vincentguo