我们在用服务器的时候,会有一个固定的外网IP地址,如果购买的是虚拟主机,也会有一个固定的IP地址。(有的主机商提供虚机没有固定IP地址)。这个IP地址代表了这台服务器,从某种意义来说,通过访问IP地址也可以直接打开这台服务器上的网站。
网站正式上线后,最好能屏蔽,禁止通过IP访问到网站。为什么,下面举个例子。
比如你的网站正式上线了,内容不错,有价值,通过IP地址可以访问到网站,有些人会把他的域名恶意指向到你的服务器IP地址上,通过访问他的域名来打开你的网站。这叫“恶意解析”,搜索引擎会收录他的域名。最后服务器或VPS 的 IP 被人恶意绑定,流量被劫持到别的域名,从而遭到广告联盟的封杀。原理是什么呢?简单解释就是,你的网站可以通过 IP 直接访问,本来这没什么问题,但是如果被人恶意用别的域名解析到你的 IP 的话,那么你的网站就能通过别人的域名来访问了。广告联盟肯定也是跟域名绑定的,被人这么一搞,时间一长肯定会被发现域名不符,于是就 GG 了
Nginx 防止恶意解析
这里说一下使用宝塔面板,LNMP 的环境下防止恶意解析的操作
需要绑定一个默认站点,也就是找一个空闲不用的站点,所有未在面板绑定的域名都会访问到这个默认站点
添加好默认站点以后,修改站点的配置文件
添加 return 444
,可以把 444 改成 404 或 502 等错误码,为了防止使用 https 访问,我们 server_name 写服务器 IP 地址,同时监听 443 端口
server { listen 80 default_server; listen 443; server_name 115.*.*.*; return 444;
然后我们使用 IP 访问看一下咯
Apache 防止恶意解析
如果你的 Apache 开通了虚拟主机,则需要修改 conf/extra/httpd-vhosts.conf
文件
如何判断 Apache 是否开通了虚拟主机,在配置文件 httpd.conf
中搜索,若有类似如下的选项的,则开启了虚拟主机,#为注释
# Virtual hosts Include conf/extra/httpd-vhosts.conf
若是开通了虚拟主机,则需要在 httpd-vhosts.conf
中修改配置如下,若没有开通虚拟主机,则可以直接在 httpd.conf
文件最后面,加入以下代码:
NameVirtualHost XXX.XXX.XXX.XXX ServerName XXX.XXX.XXX.XXX Order Allow,Deny Deny from all ServerName yourdomain.com DocumentRoot /home/wwwroot/ 其中 XXX.XXX.XXX.XXX 为你的 IP 地址,第一处 virtualhost 配置为拒绝 IP 的任何访问请求,返回 403 错误
第二处的 virtualhost 配置为允许通过 www.zhuax.com(你的域名)这个域名访问,网站主目录为/home/wwwroot/
当然还可以新建一个虚拟主机配置,将来自 IP 的访问 Rewrite 到一个自定义的 PHP 页面,利用 Apache 的 Rewrite 和 PHP 实现 400 错误