铭竟科技
2026-06-24 10:02:47

如何阻止黑客上传恶意文件执行方案

分享到:

核心逻辑:上传目录禁止脚本执行 + 文件强校验 + 系统权限锁死 + 中间层拦截,四层防护让黑客上传的木马、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 开启上传防护

上传目录操作系统取消执行权限

四层同时配置后,黑客无论上传何种木马、脚本,都无法在服务器运行、解析、访问。


上一篇:解决IIS服务器中.webp文件无法访问的问题
下一篇:没有了