隐藏版本信息与敏感标识
通过server_tokens off;指令禁用Nginx响应头中的版本号显示,避免攻击者根据版本信息针对性发起攻击;进一步可使用headers-more-nginx-module模块彻底移除Server: nginx标识,降低服务器指纹识别风险。
严格访问控制与权限管理
allow/deny指令限制敏感接口(如/admin)的访问范围,例如仅允许可信IP段访问,拒绝其他所有IP;user指令指定低权限系统用户(如nginx)启动Nginx进程,避免进程被攻破后直接获取root权限;autoindex off;)防止敏感文件泄露,通过location指令限制对.conf、.log、.bak等敏感文件的访问(如location ~* \.(conf|log|bak)$ { deny all; })。强化SSL/TLS加密配置
ssl_protocols TLSv1.3 TLSv1.2;);配置强加密套件(如ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH; ssl_prefer_server_ciphers on;),提升数据传输安全性;return 301 https://$host$request_uri;),并启用HSTS头部(add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";)强制客户端使用HTTPS。请求频率与防DDoS防护
limit_conn_zone(如limit_conn_zone $binary_remote_addr zone=addr:10m;)定义IP地址连接数限制(如limit_conn addr 10;,单IP最大10个并发连接);使用limit_req_zone(如limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;)限制请求速率(如每秒1个请求,允许突发5个),防止CC攻击或DDoS导致服务器资源耗尽;client_body_timeout(请求体超时)、client_header_timeout(请求头超时)、keepalive_timeout(长连接超时)等参数(如均设为10秒内),快速释放闲置连接,降低服务器负载。防恶意请求与注入攻击
limit_except指令仅允许必要的HTTP方法(如GET、POST),拒绝TRACE、DELETE等危险方法(如limit_except GET POST { deny all; });if语句匹配恶意字符串(如SQL注入的union.*select、XSS的<script>),返回403禁止访问(如if ($query_string ~* "union.*select.*from") { return 403; });add_header Content-Security-Policy "default-src 'self';"头部,限制页面资源加载来源,防止XSS攻击。安全头部增强
添加以下响应头提升应用层安全:
X-Content-Type-Options: nosniff:防止浏览器 MIME 类型嗅探,避免恶意脚本执行;X-Frame-Options: SAMEORIGIN:防止点击劫持攻击,仅允许同源页面嵌入;X-XSS-Protection: 1; mode=block:启用浏览器XSS过滤,自动拦截可疑脚本。模块与运维优化
autoindex、gzip_static),减少攻击面;access_log)和错误日志(error_log),记录客户端IP、请求时间、状态码等关键字段,便于溯源攻击行为;定期通过nginx -t测试配置语法,使用nginx -V检查编译参数,及时更新Nginx至最新稳定版修复已知漏洞;