通过运行条件编译防止JS泄露IE浏览器

时间:2015-03-19 09:58:33

标签: javascript internet-explorer browser activex

下面的JS代码可以显示您的浏览器是否为IE。

var isIE = /*@cc_on!@*/!1;

有没有办法在不禁用javascript的情况下阻止此行为?

1 个答案:

答案 0 :(得分:1)

根据对该问题的评论确定的最终目标是查看是否有办法从JavaScript的任何类型的检查中“隐藏”浏览器的身份,以帮助创建具有完全匿名性的自定义浏览器。

我觉得根据浏览器提供的所有提示来揭示它的真实身份,这几乎是不可能的。

对于Internet Explorer,这里只是(readonly)属性值的一个示例,表示浏览器是Internet Explorer

//This could be any element
var bStyle = document.body.style;
for(var x in bStyle){
  console.log(x + ':' + bStyle[x]);
}

返回类似( ms 是Microsoft属性的前缀)的属性:

msBlockProgression: 
msInterpolationMode: 
msBackfaceVisibility:
msPerspective: 
msPerspectiveOrigin: 
msTransformStyle:
msTransform: 
msTransformOrigin: 
msAnimation: 
msAnimationDelay: 
msAnimationDirection: 
msAnimationDuration: 
msAnimationFillMode: 
msAnimationIterationCount: 
msAnimationName: 
msAnimationPlayState: 
msAnimationTimingFunction: 
msFlex: 
msFlexAlign: 
msFlexDirection: 
msFlexFlow: 
msFlexItemAlign: 
msFlexLinePack: 
msFlexNegative: 
msFlexOrder: 
msFlexPack: 
msFlexPositive: 
msFlexPreferredSize: 
msFlexWrap: 
and 50+ more...

还有几十个IE浏览器可以检查哪些IE会显示IE。

console.log(typeof(window.createPopup));
//>> function in IE, undefined in other browsers

console.log(typeof(document.body.currentStyle));
//>> object in IE, undefined in other browsers

然后是所有IE专用技术...... Active-X,VML,XML数据岛,VBScript,行为,CSS表达式等。所有这些都提供了浏览器实际上是Internet Explorer的指标。

我个人并没有使用它,但Tor Browser背后的想法似乎是更好的方法...匿名化你的“轨道”而不是实际使用的是什么浏览器。