如何配置Nginx的防SQL注入策略?
美国、香港服务器
如何配置Nginx的防SQL注入策略?
05-12 来源:
一、直接复制这段配置(放到 Nginx 的 http {} 里)
打开配置:
bash
运行
nano
/etc/nginx/nginx.conf
在 http { ... } 内部粘贴这段防注入规则:
nginx
# ==================== 防 SQL 注入 & XSS 拦截规则 ====================
# 拦截 SQL 注入特征字符
if ($query_string ~* "union|select|insert|delete|update|replace|drop|alter|concat|sleep\(|benchmark\(|load_file|outfile|dumpfile") {
return 403;
}
# 拦截 XSS 跨站脚本
if ($query_string ~* "script|javascript|<|>|%3C|%3E|%27|%22|%0A|%0D") {
return 403;
}
# 拦截路径穿越、目录遍历
if ($query_string ~* "\.\.\/|\/\.\.|\.\/|\.\\\|%2e%2e|%252e%252e") {
return 403;
}
# 拦截恶意函数与系统命令
if ($query_string ~* "base64_decode|eval\(|assert\(|system\(|passthru\(|exec\(|shell_exec\(|phpinfo|preg_replace") {
return 403;
}
# 拦截危险请求方法(只允许正常访问)
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 403;
}
# ==================== 防护结束 ====================
二、检查配置是否正确
bash
运行
nginx -t
显示 test is successful 就是没问题。
三、重启 Nginx 生效
bash
运行
systemctl restart nginx
这套规则能拦截什么?
拦截所有 SQL 注入攻击
• union select
• sleep () 延时注入
• load_file 读取文件
• insert /delete/drop 删库操作
拦截 XSS 跨站攻击
•
• javascript:
• 各种编码攻击
拦截目录穿越、文件读取
• ../ 路径穿越
• 读取 /etc/passwd
拦截木马后门、一句话木马
• eval、assert、system 执行函数
• 菜刀、蚁剑连接
四、加强版:只允许你的 IP 访问后台(超级安全)
如果你有网站后台,只允许你自己 IP 访问,别人直接拦截:
nginx
location /admin {
allow 1.2.3.4; # 换成你的IP
deny all;
}
五、最安全终极方案(推荐)
Nginx 防护 + 程序层过滤 + 美国泛播 / CDN
1. Nginx 拦截恶意请求
2. 网站代码做好参数过滤
3. 开启 Cloudflare 泛播代理
4. 源站只允许 CF IP 访问
黑客连你真实 IP 都找不到,注入根本打不进来。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快