当前位置:首页 > 服务器技术 > 正文

保护你的网站不被窥探(Nginx错误信息隐藏详细教程)

在部署 Web 服务时,很多开发者会忽略一个重要的安全细节:错误页面中暴露的服务器信息。默认情况下,Nginx 在返回 404、500 等错误时,会显示包含版本号甚至操作系统信息的错误页面。这些信息可能被攻击者利用,因此隐藏 Nginx 错误信息是提升网站安全性的关键一步。

保护你的网站不被窥探(Nginx错误信息隐藏详细教程) Nginx错误页面隐藏  Nginx安全配置 隐藏服务器信息 Nginx自定义错误页 第1张

为什么需要隐藏 Nginx 错误信息?

当你访问一个不存在的页面(如 https://example.com/notfound),Nginx 默认会返回类似这样的信息:

404 Not Foundnginx/1.20.1

这里的 nginx/1.20.1 就是服务器版本号。攻击者可以据此查找该版本已知的漏洞,从而发起针对性攻击。因此,隐藏服务器信息能有效降低被攻击的风险。

步骤一:关闭 server_tokens

server_tokens 是 Nginx 的一个指令,用于控制是否在错误页面和响应头中显示版本号。我们只需将其设为 off 即可。

打开 Nginx 主配置文件(通常位于 /etc/nginx/nginx.conf),在 http 块中添加或修改如下行:

server_tokens off;

保存后,重载 Nginx 配置:

sudo nginx -s reload

此时再访问错误页面,将不再显示版本号,仅显示 “404 Not Found”。

步骤二:自定义错误页面(推荐)

更进一步的做法是使用自定义错误页,完全控制用户看到的内容。这不仅能提升安全性,还能改善用户体验。

首先,创建一个简单的 HTML 文件,例如 /usr/share/nginx/html/error404.html

<!DOCTYPE html><html><head><title>页面未找到</title></head><body>  <h2>抱歉,您访问的页面不存在</h2>  <p><a href="/">返回首页</a></p></body></html>

然后,在你的站点配置文件(如 /etc/nginx/sites-available/default)中添加:

error_page 404 /error404.html;location = /error404.html {    internal;}

同样,重载 Nginx 即可生效。这样,用户看到的是你设计的友好页面,而不是技术性错误信息。

额外建议:隐藏其他敏感头信息

除了错误页面,还可以通过以下方式进一步增强安全:

  • httpserver 块中添加 more_set_headers 'Server: Web Server';(需安装 headers-more-nginx-module
  • 移除或修改 X-Powered-By 等响应头(通常由后端应用生成)

总结

通过关闭 server_tokens 和设置自定义错误页,你可以轻松实现 Nginx 安全配置中的关键一环。这不仅符合安全最佳实践,也能防止攻击者获取有用信息。记住,安全无小事,每一个细节都值得重视。

现在,你已经掌握了如何隐藏 Nginx 错误信息!快去检查你的服务器配置吧。