概述
一、将文件上传目录的所有用户执行权限全部取消
二、判断文件类型
在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经 无数次被证明是不可靠的。此外, 对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的 HTML代码,或者在使用白名单的时候,使用分割字符串(上传来的文件名),使用"."来分割,仅允许分割后,字符串只有两个,一 个是文件名,一个是文件扩展名。
三、使用随机数改写文件名和文件路径
文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
四、单独设置文件服务器的域名
把网站服务器和文件服务器分开,但是要保证,文件服务器的安全级别很高,且保证上传文件是相对高的可靠,直接把上传的图片等文件存储在文件服务器,并在文件服务器把所有目录设置为可读可写不可执行
五、二次渲染
原理:将上传的图片重新保存为一个新的图片,将里面可能含有的的可执行代码删除
以upload_labPass16为例:
1.抓包并进行爆破
2.有200出现,代表上传成功
最后
以上就是专一大雁为你收集整理的文件上传的防御的全部内容,希望文章能够帮你解决文件上传的防御所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复