![]() |
IE中限制flash访问document对象的一个bug |
虽然IE备受批评,但是从某些安全性上来说,IE还是做的挺不错的。 而今天则看到了另外一个安全问题。
对于IE(IE7测试),会自动调用res://mshtml.dll/objectembed_neutral.js 来生成页面,页面代码为
注意到,这两个页面的embed标签里面,都没有设置allowScriptAccess属性的值。 在 Flash 8 以后, allowScriptAccess 默认值是 sameDomain ,我的flash版本是 9.0.124 ,所以在这里应该也是 sameDomain,就是说,svck.swf可以访问当前html里的js和DOM对象 在IE里,认为这样自动化生成的页面是不怎么安全的,所以IE做了一件事情,就是限制这个flash访问当前窗口的document 对象 刷新一次页面后,原本被限制访问的document对象,居然可以访问了! 简单的F5刷新页面后: 在flash的as 脚本中,直接调用 window.location.reload(); 刷新当前页面,就可以访问当前页面的document对象了。 在这里,还可以在AS中通过捕获访问docuemnt的异常来判断浏览器是否是IE,也算是一种fingerprint。 |