通过Input 文件上传进行XSS攻击
最近发现网站出现了一个安全漏洞,可以通过控制台修改Input的accept属性来上传不允许的文件类型。
对于前端来说,通过使用Input的type=file 来进行本地文件的上传是最常用的方式。
使用Input进行文件上传时,有accept属性可以进行文件类型的限制,比如想上传图片文件,将accept设置成image/,上传音频则设置成audio/。使用方便快捷。
漏洞:当前端使用Input进行上传时,有心人只需要在控制台中找到上传文件的Input标签,然后将accept的参数修改一下便可越过这个限制,上传其他类型文件,比如本应该上传图片,通过这样修改可以上传audio\video\word\html\js等文件。给系统造成很大的安全漏洞。因此需要针对此漏洞进行限制。
修改:我的做法时当选择完文件之后用js来做个判断,判断文件类型是否符合条件
不足:这种做法可以弥补一些Input的不足,但是不能完全解决,比如将可执行脚本用符合条件的文件中,所谓前端的都是可以绕过的,因此还需要在后端做限制。前端加限制是为了提高漏洞使用的门槛,降低风险。
注:遇到问题记录,仅供参考