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