虽然互联网经过多年的发展,可是网站使用的底层协议仍是 HTTP,HTTP 作为一种明文传播协议,所有的传输数据都是明文,我们都知道在通信中使用明文(不加密) 内容可能会被窃听,同时网站存在被劫持的风险。面对多种方式的网站劫持,我们应该如何应对?
工具/原料
电脑*1
第一步:判断为何种流量劫持
针对网站劫持,首先,我们要判断为何种网站:
1、搜索引擎劫持
2、运营商劫持
3、DNS劫持
4、HTTP 劫持
5、浏览器劫持
6、路由器劫持
第二步:制定解决方案
确定劫持种类之后,制定主要的解决方案。
1/4限制网站权限
部分网站遭遇劫持主要由于非法服务器获取了 Web 网站文件及文件夹的读写权限,针对这个问题,我们可以利用服务器的安全设置、提高网站程序的安全性,以此防范 Web 劫持。
1. 提升网站 防 SQL 注入功能
针对MS SQL Server 数据库中的小权限 sa 默认用户,建立一个只能访问本系统数据库的专一用户,并且为他配置最小权限。
2、 配置 Web 站点文件夹及其操作权限
将大部分人的权限配置为仅读权限,黑客在没有写权限的情况下,很难将木马程序植入,减少网站域名劫持的可能性。
3、 定期清理 Web 网点中存在的可疑文件
通过对异常事件和日期的分析,查看执行代码文件中是否被人注入代码或改动,并且对新增可执行代码进行清理。
2/4使用公共114DNS
让用户绕过运营商 local DNS,使用 114 DNS(国内最大的中立缓存 DNS),这种在技术实现上有比较大的难度,成本也比较高。
3/4HttpDNS,防止 DNS 劫持
在移动客户端中加入一个域名解析模块,客户端通过 HTTP 的方式向网站的流量调度服务器请求 IP,流量调度服务器会根据用户所在位置给用户一个最优的IP。客户端在获取IP后直接用此IP来访问所需站点资源。
网站使用 HttpDNS 面临较高的成本,我们可以选择国内公有云厂商比如又拍云(upyun.com)的 HttpDNS 调度功能,可以有效防止 DNS 劫持。
4/4HTTPS 防劫持
1、 HTTPS 防劫持原理
由于公共 DNS、HttpDNS 的部署成本过高,有一定的技术难度,并且在面对无孔不入的流量劫持时难免会力有不逮。这时候网站开启 HTTPS 作为防劫持手段之一可以高效的解决这些问题。目前绝大部分网站也都已经启用 HTTPS 来加密。
2、 如何快速启用 HTTPS
鉴于启用HTTPS会带来大量的服务器资源消耗,目前大多数公司普遍的选择是直接使用国内的 CDN 服务,诸如又拍云等提供一站式 HTTPS 服务,简单几步就能完成全站 HTTPS 的部署。
第三步:总结
面对 Web 流量劫持,首先我们可以在网站层面限制读写权限,限制恶意代码的写入,其次可以通过公有 DNS 和 HttpDNS 来防止恶意 DNS 劫持。全站开启 HTTPS,加密数据传输,可以有效防止数据泄漏,同时解决流量劫持的问题。