首页 > 代码库 > ActiveX 暴漏你所有信息的可怕的插件!
ActiveX 暴漏你所有信息的可怕的插件!
最近在项目中经常接触ActiveX控件,对于这个名词相信只要是上网看视频的用户一定都会遇到adobe更新或者加载的提示,这就是一个ActiveX控件。一直以为Active控件是处理复杂的页面逻辑提供视频动画展现的和本地环境没有交互的;这两天通过一个简单地<input type="file"/>加深了对他的认识,更加深刻的认识到了他的巨大作用的同时无时无刻不感觉到一把达摩克勒斯剑悬在了头上。
起因:
项目中需要在原有的表单中实现一个图片上传功能B,挺简单的逻辑,但是由于原有的页面也有选择文件上传的按钮A,A是调用另一个第三方控件选择图片,然后在线预览选中的图片但是此控件并不会上传选中的图片,由于不可能让用户选择两次图片,因此需要加入功能B在用户调用A功能的时候就把图片上传上去,第一个想法尝试使用jquery将<input type="file" id="imgPath"> 中的value进行动态赋值,用户调用A的时候就将图片上传,多次尝试后发现这种方法是无法给input 域赋值的,原因是这个类型是只读的,不能赋值,即使给他value设置值也是无效的。原因可以试想一下,如果这个域可以赋值,那么我可以随意赋值一个路径,将用户的数据在未经用户同意的情况下直接上传,多么可怕。难道就没有一个赋值一个路径在未经用户许可的情况下就上传到的方法么?答案是有的,可以通过ActiveX插件,此处以某公司的XX签章产品中的一个功能为例:
var path="D://那个谁.jpg";
obj.putFiles(path,"艳照");
简简单单两句话就能悄悄的将电脑的文件上传到服务器了。试想如果有人刻意将你引诱到某个网页,提示你要加载一个控件,然后让你看半小时的电影,他就可以在后台循环遍历你的电脑 C、D、E各种盘找到敏感的文件进行上传,是不是很恐怖。
为了防止这种情况的发生,浏览器本身有很多限制AxtiveX控件运行的方法,最简单的就是在Internet选项中设置是否启用等信息。更为安全的方法是将需要使用控件的可信网站加入可信站点里面,对于不明确来源的控件不要安装。
ActiveX 暴漏你所有信息的可怕的插件!