Nginx如何实现安全策略?

Nginx可以通过以下方式实现安全策略:

  1. 禁用不必要功能:在编译Nginx时关闭不需要的HTTP方法、服务器选项等,减少攻击面。
./configure --without-http_client --without-http_proxy  --without-http_charset_module
  1. 隐藏Nginx版本:使用server_tokens off关闭Nginx版本显示,避免攻击者利用版本漏洞。
server_tokens off; 
  1. 安全HTTP头:使用add_header新增安全相关HTTP头,如X-Frame-Options等。
add_header X-Frame-Options DENY;
  1. HTTPS重定向:使用return指令将http请求重定向到https,提高安全性。
server {
    listen 80;
    return 301 https://$host$request_uri; 
}
  1. 访问控制:使用allow/deny等指令进行IP访问控制,拒绝未授权访问。
location /admin/ {
   deny 192.168.1.1;   # 拒绝此IP访问
   allow 192.168.1.0/24; # 允许此网段访问
   ...
}
  1. http基础认证:使用auth_basic指令进行http基础认证,保护敏感资源。
location /admin/ {
   auth_basic           "Admin Area";
   auth_basic_user_file conf/htpasswd; 
}

7.csrf防护:配合SRP治理csrf攻击