为什么一些人认为JavaScript很糟糕?

时间:2009-05-25 14:21:44

标签: javascript security browser

为什么允许在浏览器中禁用JavaScript? (即为什么它被认为是坏的?)

19 个答案:

答案 0 :(得分:33)

<body onload="for(i=0; i<1000000; i++){window.open(
    'samplesite.com?pageid=' + i);}">

答案 1 :(得分:28)

  

为什么允许在浏览器中禁用JavaScript? (即为什么它被认为是坏的?)

因为它可能被严重误用(闪烁的图像,任何人?),可能会降低浏览器的速度,当然总是(非常合理!)担心被利用的安全漏洞。

答案 2 :(得分:8)

首先使用Javascript,您可以创建用户可能不想要的事件,例如改变窗口的大小...

另一方面,想想那些在某种程度上有限的人...如果你的用户失明并使用屏幕阅读器,而你的网页不断改变其内容,那么...在可访问性方面有很多理由反对Javascript。 ..

答案 3 :(得分:7)

回到过去,它曾经是:

  • 令人讨厌的光标跟踪动画的来源(我相信你会记住一些东西,比如在你的光标下面下雨的羊或时钟......我想找到那些想到这一点并用鳟鱼拍他们的聪明人)
  • 认为不安全
  • 没有任何目的,但让浏览器陷入困境

然而,多年来它已经变得更先进并且应用了更多的思考。

答案 4 :(得分:7)

从历史上看,它一直是基于Web的服务的一个巨大的安全问题。此外,任何可利用的技术和进入技术门槛都很低,它最终成为了低眉毛麻烦制造者(脚本小子)的工具。在安全漏洞数据库中快速搜索javascriptxss将显示数百页漏洞。

答案 5 :(得分:6)

JavaScript通常被认为是危险的,或者至少令人讨厌,原因有两个:

  • 网站可以突然做你不希望他们做的事情,例如:打开弹出窗口
  • 网站可能会突然阻止您做您想做的事情,例如:禁用右键单击

现在,在绝大多数情况下,JavaScript是无害的,可以真正增强用户体验(Ajax浮现在脑海中)。但所需要的只是一个恶意网站使用JavaScript来做像Cross-site Scripting这样的邪恶(TM)事情。出于这个原因,通常认为最佳做法是全局禁用JavaScript,并允许它仅用于您明确信任的那些站点或域。在这个时代,互联网上的偏执是一件好事。

答案 6 :(得分:6)

这是一种弱类型的脚本语言。通常使用“强大”语言的程序员会瞧不起这种无稽之谈。即使考虑使用它也会感到羞耻,我的上帝怜悯你的灵魂。

答案 7 :(得分:3)

可能会导致安全问题。特别是在IE的旧版本中(不再那么多)。

或者它可能与Stallman's ranting; - )

有关

答案 8 :(得分:3)

主要考虑因素是安全性。通过JavaScript利用浏览器安全漏洞的偷渡式下载是目前恶意软件传播的最常见方式。

答案 9 :(得分:3)

与其他人所说的一样,它会混淆搜索引擎。您添加的“动态”内容越多,无法编入索引的可能性就越高。此外,许多人使用因特网作为参考库。在您阅读页面时,真实图书馆中的图书不会改变周围的事物。您可能会将您的网站视为“应用程序”,但您的用户可能更愿意将其视为“文档”。

简而言之,JavaScript会混淆信息,有时会完全拒绝访问(即JavaScript代码有问题并且崩溃)。一个典型的例子就是几年前我无法观看AOL播放的Live8音乐会,因为JavaScript代码编写得很糟糕,实际上并没有对我女朋友的AOL浏览器起作用(具有讽刺意味我知道) )。我试图直接看到电影网址,但混淆是如此复杂,我找不到它。它对AOL没什么好感。

顺便说一下,我碰巧是那些默认禁用JavaScript的人之一。如果我需要它,我可以使用NoScript Firefox附加组件在2秒内(真的)为特定网站或页面启用它。

答案 10 :(得分:2)

某些公司或业务部门的政策是不允许启用javascript,因为担心会出现任何安全漏洞风险,这可能是最大的问题,因为它无法安全锁定,它必须被禁用。例如,如果您可以在严格模式下运行javascript,这不允许ajax请求,那么您可能会发现更多人愿意在关注安全性的计算机上使用它。

只要用户可以访问网站,并且可以通过Internet透明地发送有关用户正在做什么的信息,那么这些安全问题就会存在。

例如,我可能有一个看似有用的Firefox插件,但它可能会发送不需要的信息到网站。

答案 11 :(得分:2)

因为它将负载从服务器转移到客户端,并且无法控制到什么程度。

我每天都在使用Javascript并尊重它所做的事情,但有时当我浏览一个非常简单的页面时,界面反应迅速,因为没有任何东西可以呈现,但纯粹,简单的HTML,我认为那样曾经是互联网目的的最初目的。你可以,而且我只是夸大其词,用600 MhZ Pentium和128兆字节RAM浏览这些页面没有问题。对于一个Javascript密集,有效的“丰富”网站,你需要在客户端提供大量资源才能获得中途畅通的体验,而且你需要像游戏玩家那样经常更新你的设备。

此外,我通常会感觉到一些,而不是敌意,但轻微对Javascript的烦恼,因为大量通过添加主机来增加开发成本不兼容的目标平台,版本,模糊和专业,以及一个容易出错,难以调试和易变的环境。

那就是说,我认为这个行业欠JQuery,Prototype的创造者以及其他许多人的赞赏。

答案 12 :(得分:1)

JavaScript,正如JSON的发明者所称,是世界的虚拟机。这是数十亿人的地方。这种巨大的曝光带来了其他语言不必面对的一些危险。

示例即可。写一个网站,只是'重定向'你到另一个网站,你可以登录。如果你不完全控制你的浏览器/ URL等,一些JavaScript可能已经从其他网站加载页面内容,并将记录你的按键。这可以通过几行JavaScript来实现。这不是真正的错误(如果它完全是错误的),而是所有组件(浏览器,HTML和这个巨大的空间,我们称之为Internet)。

答案 13 :(得分:1)

  

为什么允许javascript   在浏览器中禁用? (即为什么   它被认为是坏事?)

因为浏览器不是完美的!它为您提供了在需要时保护自己的方法。

当发现安全风险时,他们只会在他们的主页上发布

Please disable javascript until its fixed

像这样,(我现在没有官方网页,所以从某处搜索)

http://browsers.about.com/b/2009/07/16/firefox-3-5-users-should-take-action-immediately.htm

  

然而,在修复发布之前,我   建议您禁用   JavaScript完全或使用另一个   浏览器。

答案 14 :(得分:1)

有一些罕见的例子,JavaScript可能是危险的(但任何事情都可以,包括大规模无处不在的Flash)。用户实际上禁用它或使用像NoScript这样的插件的原因在很大程度上是不合理的偏执狂。

最后,用户不会坚持打破他们想要体验的网站的行为。因此,我不希望JavaScript偏执成为一个长期问题,因为只有越来越多的网站依赖它(就像这个一样)。

这类似于我们几年前在饼干周围看到的炒作。

答案 15 :(得分:1)

JavaScript有一些非常“奇怪”的语言特性,比如只是忽略解析错误(“分号插入”)或类型操作符(数组是对象)的行为,在语句结尾处理丢失的分号。

你真的需要知道这种语言才能知道你应该做哪些事情,哪些事情不好。

但是语言也非常好,就像它完全支持函数式编程一样。

答案 16 :(得分:1)

它可能会使浏览器崩溃,或者对用户造成烦人的事情。

然而,现在有一天Javascript已经成为互联网的一个集成部分(Gmail,支付许多公司网站的账单等),如果你确实禁用了它,那么除非你有例外,否则浏览对你来说可能很难。< / p>

答案 17 :(得分:0)

只有你访问有问题的网站才是坏事。没有javascript你就不会有像gmail,yahoo finance等的应用程序。

答案 18 :(得分:0)

  

为什么允许在浏览器中禁用JavaScript?

也许是因为计算机是为人类服务的工具?通过协议与计算机通信的计算机可以强制执行特定行为为用户编写软件的开发人员没有这样的奢侈品。

对于浏览器供应商而言,要求“必须”启用JavaScript是毫无意义的,因为有很多人不能或不想要它。特别是因为90%的时间它被一些不稳定的时髦者用来制作猫图片。