网站禁止IP访问

郎家岭伯爵 2023年03月20日 228次浏览

问题

偶然发现本站可以通过 IP 进行访问,补一下网站漏洞。

解决

找到网站的 Nginx 配置文件,在 Nginx 中加一个如下 server,然后重新加载 Nginx 配置文件即可。但这个 server 块必须要作为 Nginx 配置文件的第一个 server 块,不可以放在后面。

server
{
    listen 80;
    listen 443;
    # 这里替换自己网站的IP
    server_name YOUR_IP;
    return 444;
}

注:

  • 这里务必返回 444 状态码。 一些教程里会写返回 403 或者 404,首先我们是为了迷惑可能存在的恶意攻击者这是一个无效的 IP,从而避免可能的恶意行为。使用 403404 虽然阻止了通过 IP 访问网站,但通过状态码可以判断出这是一个有效的 IP,这并没有达到我们的预期(有些此地无银三百两的意味)。而 444 是一种非标准状态代码,用于指示 Nginx 关闭连接而不向客户端发送响应,最常用于拒绝恶意或格式错误的请求。客户端看不到此状态代码,它仅出现在 Nginx 日志文件中。

总结

通过在 Nginx 配置文件中添加配置项,可以禁止通过 IP 访问网站。

捐赠页面示例