问题
偶然发现本站可以通过 IP 进行访问,补一下网站漏洞。
解决
找到网站的 Nginx 配置文件,在 Nginx 中加一个如下 server
块,然后重新加载 Nginx 配置文件即可。但这个 server
块必须要作为 Nginx 配置文件的第一个 server
块,不可以放在后面。
server
{
listen 80;
listen 443;
# 这里替换自己网站的IP
server_name YOUR_IP;
return 444;
}
注:
- 这里务必返回
444
状态码。 一些教程里会写返回403
或者404
,首先我们是为了迷惑可能存在的恶意攻击者这是一个无效的 IP,从而避免可能的恶意行为。使用403
或404
虽然阻止了通过 IP 访问网站,但通过状态码可以判断出这是一个有效的 IP,这并没有达到我们的预期(有些此地无银三百两的意味)。而444
是一种非标准状态代码,用于指示 Nginx 关闭连接而不向客户端发送响应,最常用于拒绝恶意或格式错误的请求。客户端看不到此状态代码,它仅出现在 Nginx 日志文件中。
总结
通过在 Nginx 配置文件中添加配置项,可以禁止通过 IP 访问网站。