现在的位置: 首页 > 综合 > 正文

关于firefox getComputedStyle 漏洞

2012年09月29日 ⁄ 综合 ⁄ 共 870字 ⁄ 字号 评论关闭

刚看到FF新版本修复了一个getComputedStyle的漏洞。

感觉很有趣, 就google了下。

找到一段代码是这么写的:

 

代码
function  hasLinkBeenVisited(url) {
        
var link = document.createElement('a');
        link.href 
= url;
        document.body.appendChild(link);
        
if (link.currentStyle) {
                
var color = link.currentStyle.color;
                
if (color == '#ff0000')
                        
return true;
                
return false;
        } 
else {
                link.setAttribute(
"href",url);
                
var computed_style = document.defaultView.getComputedStyle( link, null );
                
if (computed_style) {
                        
if (computed_style.color == 'rgb(255, 0, 0)')
                                
return true;
                }
                
return false;
        }
}
 

 也就是说, 创建一个a标签, 然后检测style

就可以知道这个连接是否被访问过了。

 

然后FF的修正方式是:

永远像“用户的浏览器从未访问过任何网站” 那样返回值。

 

额, 难道说的“获取用户访问历史” 的漏洞, 就是这样一个一个连接的检测吗?

抱歉!评论已关闭.