文件上传功能在很多系统中都扮演着非常重要的角色,因而保证文件上传的安全也是至关重要的,对上传漏洞置之不理会造成严重后果。
文件上传有那些风险?
加入你的网站有文件上传功能的话,那可能有三种类型的风险:
- 现有文件被重写。
如果上传一个同样名字,同样后缀的文件,那么现有的文件就会被重写。如果被重写的文件很重要,新上传的文件可能会造成服务端被进一步攻击。严重的可造成网站无法运行,或者让黑客上传更多的危险文件。 - 恶意内容
如果上传的文件包含恶意软件或脚本,可能获得服务器的控制权,感染用户机器。 - 上传非常大的文件
如果上传一个非常大的文件,会造成拒绝服务(DDos)攻击,击垮站点。
如何防止文件上传攻击
如果要避免以上三种文件上传攻击,这里推荐几种最佳实践:
- 1、指定文件上传类型。
通过限制文件上传类型,避免他人上传可执行的文件,脚本或其他具有潜在威胁的文件。 - 2、校验文件类型,不仅要限制文件上传类型,还要防止上传一些假装成允许类型的文件。比如攻击者可能会将.exe重命名为.docx,看起来是word文档,实际上却不是。
- 3、扫描恶意软件。
需要对所有文件进行扫描,最好使用多种反恶意引擎进行扫描。 - 4、移除文件中嵌入的威胁。
Microsoft Office, PDF,图片都可能包含嵌入的脚本和宏,这些威胁可能扫描不出来,需要进一步的内容分解和重构后才能确保安装。 - 5、验证用户
为了增加安全性,在上传文件前务必先验证用户。 - 6、限制上传的文件的文字长度和文件大小。
主要用于防止拒绝服务(DDos)攻击。 - 7、随机生成上传的文件名称。
将上传的文件名进行随机化修改,防止攻击者调用自己上传的文件。 - 8、文件不保存在网站根目录。
避免将文件保存在网站根目录,防止黑客通过网站URL进行调用上传文件。 - 9、采用简短的错误信息
当提示上传异常信息的时候,不要包含路径,配置或其他具体的异常信息,防止被黑客利用。
原文:https://www.opswat.com/blog/file-upload-protection-best-practices
网友评论