核心逻辑:上传目录禁止脚本执行 + 文件强校验 + 系统权限锁死 + 中间层拦截,四层防护让黑客上传的木马、webshell、病毒完全跑不起来。
一、Web 服务器层面:上传目录直接禁用脚本执行(最关键)
黑客 webshell(php/jsp/asp/aspx)放在上传文件夹,只要目录不解析脚本,文件上传成功也无法访问运行。
1. Nginx 配置
给上传目录单独配置,拒绝解析 php、jsp、py、sh 等可执行脚本:
nginx
location /upload/ {
root /www;
# 禁止执行脚本
location ~* \.(php|jsp|asp|sh|py|pl|cgi)$ {
deny all;
}
# 只允许静态资源
valid_referers none blocked server_names;
expires 7d;
}
2. Apache .htaccess 防护
上传文件夹新建 .htaccess:
apache
# 禁止所有脚本执行
php_flag engine off
Options -ExecCGI
AddHandler cgi-script .php .jsp .asp .sh .py
# 拒绝访问脚本文件
<FilesMatch "\.(php|jsp|asp|sh|py)$">
Require all denied
</FilesMatch>
3. IIS 站点配置(ASP/ASP.NET)
打开上传目录处理程序映射,删除 php、asp、aspx、cgi 所有脚本解析器
给上传目录设置:无执行权限,只开启 “读取”
请求筛选器拦截脚本后缀,直接 403 拒绝
二、后端代码校验:只允许合法文件,拦截恶意可执行文件
1. 黑名单(拦截高危后缀)
禁止上传:.php,.php3,.php5,.jsp,.jspx,.asp,.aspx,.sh,.bash,.py,.pl,.cgi,.exe,.bat,.cmd,.dll,.so
2. 白名单(推荐,更安全)
只允许业务需要的文件:图片 jpg,jpeg,png,gif,webp;文档 pdf,xlsx,docx;视频 mp4 等,不在白名单直接丢弃。
3. 双重校验:后缀 + 文件真实二进制头(防文件改名绕过)
黑客常把 shell.php 改名为 1.jpg 绕过后缀检测,必须校验文件头:
JPG 文件头:FFD8FF
PNG 文件头:89504E47
PHP 木马无合法图片头,直接拦截
4. 文件名重命名,彻底消除脚本风险
上传后不要保留原始文件名,统一重命名为随机字符串 + 固定合法后缀:
例:abc123def.jpg
就算黑客上传 shell.jpg.php,重命名后只会变成随机.jpg,服务器不会解析。
三、操作系统权限隔离(服务器底层锁死)
Linux 系统
上传目录设置只读权限,关闭执行权限
bash
运行
chmod -R 0644 /www/upload
chown -R www-data:www-data /www/upload
挂载上传目录时加 noexec 参数,目录内所有文件无法执行二进制程序
修改 /etc/fstab:
plaintext
/data/upload /data/upload ext4 defaults,noexec,nosuid 0 0
禁止上传目录拥有 suid/sgid 权限,防止提权木马
Windows 服务器
上传文件夹安全权限:
网站运行用户:仅读取、列出文件夹内容,取消「执行文件」权限
管理员外其他用户无写入修改权限
组策略拦截上传目录内 exe、脚本运行
四、中间件 / 安全设备拦截
WAF 防火墙
规则拦截:文件上传流量、包含脚本代码的文件、webshell 特征码,上传时直接阻断请求,文件根本存不到服务器。
云服务商防护(阿里云 / 腾讯云等)
开启 Web 防护、恶意文件检测,自动查杀上传木马。
杀毒软件 / 主机安全(HSS)
实时监控上传目录,一旦检测到 webshell、病毒自动隔离删除。
五、附加加固规则,杜绝绕过手段
路径限制:强制文件只能上传到指定 upload 目录,禁止传入 ../ 路径穿越(防止把木马传到网站根目录)
禁止上传带特殊字符文件名:%00 空字符截断、双后缀 xxx.jpg.php
关闭文件包含、文件读取漏洞:代码不要用用户可控参数加载本地文件
独立域名存放上传资源
上传文件使用单独二级域名(如 shturl.cc/vQHl),不绑定网站后端语言解析环境,跨域隔离,就算有恶意文件也无法和主站交互。
最简落地组合(中小企业首选)
上传目录 Nginx/Apache 关闭脚本执行权限
后端白名单校验 + 文件头校验 + 随机重命名
WAF 开启上传防护
上传目录操作系统取消执行权限
四层同时配置后,黑客无论上传何种木马、脚本,都无法在服务器运行、解析、访问。