Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75036
  • 博文数量: 17
  • 博客积分: 1426
  • 博客等级: 上尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-03 11:13
文章分类

全部博文(17)

文章存档

2010年(1)

2007年(4)

2005年(12)

我的朋友

分类: 系统运维

2007-02-05 20:36:22

  今天下午,同事过来说有几个页面显示不正常,去到他那边一看,果然。但是回到我的机器上,同样的情况下却没有出现问题。看了他那边的页面源码,发现页面上被某名奇妙的加入了一些js代码,使得页面的window.open无法使用。原有的代码是这样的:

<script type="text/javascript" language="javascript">
<!--
    if (window != window.top) {
        window.open('index.html', '_top');
    }
// -->
</script>

就是把当前frame显示的东西打开到最顶层的窗口。
  而被插入的代码如下:

<script language="JavaScript">
<!--
    function SymError()
    {
        return true;
    }
    window.onerror = SymError;
    var SymRealWinOpen = window.open;
    function SymWinOpen(url, name, attributes)
    {
        return (new Object());
    }
    window.open = SymWinOpen;
//-->
</script>

  页面的末尾还有:

<script language="JavaScript">
<!--
    var SymRealOnLoad;
    var SymRealOnUnload;
    function SymOnUnload()
    {
        window.open = SymWinOpen;
        if(SymRealOnUnload != null)
            SymRealOnUnload();
    }
    function SymOnLoad()
    {
        if(SymRealOnLoad != null)
            SymRealOnLoad();
        window.open = SymRealWinOpen;
        SymRealOnUnload = window.onunload;
        window.onunload = SymOnUnload;
    }
    SymRealOnLoad = window.onload;
    window.onload = SymOnLoad;
//-->
</script>

  看了这段代码,我开始怀疑是某个防火墙搞的鬼。果然,在他的机器上正安着NIS,我让他关掉后再测试,一切OK。
  说实话,我虽然一直都没有用Norton,但是印象也不差,不过这一次,真是让我十分鄙视它。从代码可以看出,它只是把window.open替换掉,等到页面全部加载完了再恢复,以此行为来阻止“弹出窗口”。在我看来,这种做法好坏不分,简单粗暴,而且毫无技术含量。
  本来,阻止弹出窗口这种工作,应该是浏览器份内的事,既然它要狗拿耗子多管闲事,那做好一点也就算了,反正大家都这么干。可是它又不肯下功夫做,只是简单的把window.open替换掉,于是,加载过程中,任何对window.open的调用都无效。而任何一个有心要做弹出广告的人,只要稍微加点代码,就可以直接无视NIS加的东东。倒是那些做正常应用的开发人员,如果漏了测试NIS的过滤,反而有可能会得罪客户。就冲这一点,说它毫无技术含量也不为过。
  再者,NIS在做这种事的时候,没有给用户提供任何说明,甚至于代码里都没有加任何注释说明这段代码是由它插入的。这种行为跟流氓软件的行径已经相差不远了,都是偷偷摸摸的往用户的东西里面加自己的东西,唯一不同的是,一个是在系统里面加东西,一个是在用户浏览的网页里面加东西。
  总而言之,NIS的弹窗控制做得简单粗暴,毫无技术含量,可以看出,其开发人员非常不负责任,由此可见其产品质量如何。我用了半年的KIS,还没有发现有这种偷偷摸摸加代码的情况。前段时间刚买了Pc-cillin,过年后测试一下看看会不会有这种问题:)
阅读(2035) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~