防止域名被恶意解析
一、何为域名恶意解析
外部未知的域名持有者,将域名解析到非其所持有的服务器公网IP上,间接或直接造成损害他人利益的行为。
二、借刀杀人
域名的恶意解析,可以用于借刀杀人。
这个手法很骚,轻则可以将对手的SEO排名拉低,重则可以让工信部封杀其站点。
具体实现条件如下:
- 未备案的域名或已被接入工信部黑名单的域名
- 获取要攻击的站点,其源服务器使用的公网IP
- 确认要攻击的网站80端口和443端口可以直接用IP直接访问
- 将黑域名解析到该公网IP
危害如下:
- 不同域名解析到同个站点,真身域名权重被降低,SEO排名被假域名挤占
- 非法域名解析,导致源服务器被工信部封杀,网站停止服务
三、解决方法
将无效域名的HTTP请求,全部拒绝响应
以下是我的个人站点的nginx配置
server{
listen 80 default_server;
server_name _;
access_log off;
return 444;
}
server{
listen 443 default_server;
server_name _;
ssl_certificate cert/www.wangxiaokai.vip.pem;
ssl_certificate_key cert/www.wangxiaokai.vip.key;
access_log off;
return 444;
}
3.1 筛选无效域名
server_name _;
这个代表的就是无效域名,_
符号可以用-
或!@#
代替,都可以达到相同的效果。
3.2 不记录访问日志
access_log off;
访问日志是需要存储空间的,如果没有设置自动清理脚本,也是可以把服务器存储空间打爆的。
3.3 不处理无效域名的请求
return 444;
444是Nginx服务器扩展的HTTP错误状态码,为非标准HTTP状态码。
它的作用是:服务器不向客户端返回任何信息,并关闭连接, 断开客户端和服务器的连接,防止恶意软件攻击威胁。
3.4 一些细节
这两个server模块,应该放在最前,优先处理。
最近笔者在整理第一本电子书书稿《前端面试手册》,有兴趣的同学可以关注下~
喜欢我文章的朋友,可以通过以下方式关注我:
- 「star」 或 「watch」 我的GitHub blog
- RSS订阅我的个人博客: