IE中对file控件的安全限制

通过脚本触发file.click()方法,只有在IE中会造成拒绝访问,而MDN上还有教程指导开发者怎么用click方法触发隐藏的file控件。

网上的说法是IE的安全限制导致的,例如,我的本意是要让用户触发页面中name为A的file控件,但是攻击者通过某种方式屏蔽了我的触发代码,转而使用他自己的触发代码,触发了另一个域中的file控件,然后弹出了一个文件选择框;接着用户在本机选了一些敏感文件,比如昨晚的艳照然后提交,然后你懂的……

所以IE的做法很简单,只有用户明确点击了file控件,此时选中了的文件才可以上传。

Ajax表单提交插件FineUploader,当用户使用IE9-浏览器时会自动使用Form方式构造file控件,然后,它很牛B地把file透明化盖在原有的按钮上,当你点击按钮时实际上点击的是file控件。这种方式在IE的一些版本会造成视觉上的问题,例如点击时文字下沉了一下,不知者可能会当作BUG拼命调试,然后砸掉键盘说这坑爹玩意浪费了我9美元……

原文地址:https://www.cnblogs.com/zjxwow/p/2855478.html