文件上传漏洞

关键是文件上传之后服务器端的处理、解释文件的过程是否安全。一般的情况有:
-1. 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行;
-2. 上传文件FLASH策略文件crossdomain.xml,以此来控制Flash在该域下的行为;
-3. 上传文件是病毒、木马文件,攻击者用以诱骗用户或管理员下载执行;

-4. 上传文件是钓鱼图片或为包含了脚本的图片,某些浏览器会作为脚本执行,实施钓鱼或欺诈;

结一点:文件上传的文件载体要么在服务器端具备可执行性,要么具备影响服务器端行为的能力,其发挥作用还需要具备以下几个条件:
-1. 上传的文件具备可执行性或能够影响服务器行为,所以文件后所在的目录必须在WEB容器覆盖的路径之内;
-2. 用户可以从WEB上访问这个文件,从而使得WEB容器解释执行该文件;
-3. 上传后的文件必须经过安全检查,不会被格式化、压缩等处理改变其内容;


 针对文件上传漏洞的特点和必须具备的三个条件,我们阻断任何一个条件就可以达到组织文件上传攻击的目的:
-1. 最有效的,将文件上传目录直接设置为不可执行,对于Linux而言,撤销其目录的'x'权限;实际中很多大型网站的上传应用都会放置在独立的存储上作为静态文件处理,一是方便使用缓存加速降低能耗,二是杜绝了脚本执行的可能性;
-2. 文件类型检查:强烈推荐白名单方式,结合MIME Type、后缀检查等方式;此外对于图片的处理可以使用压缩函数或resize函数,处理图片的同时破坏其包含的HTML代码;
-3. 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件;
-4. 单独设置文件服务器的域名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值