本帖最后由 痞子哥 于 2019-4-26 16:01 编辑
在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码。如何为了防止这种情况发生呢,下面来说说防止网站被运营商网络劫持强行插入广告的方法。
方法一、安装SSL证书,实现HTTPS加密。
方法二、使用 内容安全策略CSP 进行限制。
什么是内容安全策略CSP?
CSP指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。这将引入一些相当严格的策略,会使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。简单来说,就是我们能够规定,我们的网站只接受我们指定的请求资源。
内容安全策略CSP的意义
防XSS、运营商网络劫持插入广告等攻击的利器。CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。
CSP的配置方法
1、通过 HTTP 头信息的Content-Security-Policy的字段
1.1 、Nginx如何添加
在宝塔面板上的站点设置-》配置文件的,server{}代码段里添加一行
- add_header Content-Security-Policy "你的策略";
复制代码 1.2 、Apache如何添加
在宝塔面板上的站点设置-》配置文件或者.htaccess文件中加入一行
- Header set Content-Security-Policy "你的策略"
复制代码
2、通过网页的<meta>标签
- <meta http-equiv="Content-Security-Policy" content="你的策略'">
复制代码 策略应该怎么写
- // 限制所有的外部资源,都只能从当前域名加载
- default-src 'self'
- // default-src 是 CSP 指令,多个指令之间用英文分号分割;多个指令值用英文空格分割
- default-src https://host1.com https://host2.com; frame-src 'none'; object-src 'none'
- // 错误写法,第二个指令将会被忽略
- script-src https://host1.com; script-src https://host2.com
- // 正确写法如下
- script-src https://host1.com https://host2.com
复制代码 详细的CSP设置项和设置值点此了解 https://www.cnblogs.com/heyuqing/p/6215761.html
|
|