为什么有些人认为JavaScript不好?

11

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

19个回答

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

11
服务器未找到:Firefox无法在www.embarassingpornsite.com找到服务器。 - Thomas

30
为什么允许在浏览器中禁用JavaScript?(即为什么认为禁用它是不好的?)
因为 JavaScript 可能会被严重滥用(例如闪烁的图像),可能会导致浏览器变慢,当然还存在(非常合理的!)对被利用的安全漏洞的担忧。

8
希望这不是按(描述)重要性排序的…… - nickf
7
不要忘记4月1日在SO上发生的事情。它留给我至今仍然是一种恐怖... - Manos Dilaverakis
2
我敢说,大多数闪烁的图像并没有使用Javascript实现,而只是老式的动画GIF。 - deceze
2
@Ken: 好吧,你也可以关闭 CSS,大多数浏览器也很容易关闭图片。更不用说 Java、Flash 或其他浏览器插件了。事实仍然是,几乎 所有 网页浏览器的功能,即使是核心功能,都可以被关闭,这与你所说的相反。 - Konrad Rudolph
4
@Ken:我晚了两年,但我必须说:你肯定从未使用过IE :) 要在IE中禁用JS,需要进入选项对话框,然后选择安全选项卡,接着点击“自定义级别”,然后向下(很多)滚动到“脚本 | 活动脚本”,最后点击“禁用”。这至少给您4次犯错和彻底迷失的机会。而且奇怪的是,这些选项中没有一个单词是“JavaScript”。是的,超级容易的。 - rsenna
显示剩余3条评论

9

首先,使用Javascript可以创建用户可能不希望的事件,例如更改窗口大小...

另一方面,考虑到某些人的限制...如果您的用户是盲人并且在页面连续更改其内容时使用屏幕阅读器...在可访问性方面,使用Javascript存在许多问题...


8

回到过去,它曾经是:

  • 令人讨厌的光标跟随动画的来源(我相信你记得那些东西,比如下雨的绵羊或时钟跟随你的光标...我想找到那个聪明的***,用一条鲑鱼抽他们)
  • 被认为不安全
  • 除了拖慢浏览器外没有任何作用

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


2
+1 代表“用一条鲑鱼抽打他们”。 - MSpeed

7

历史上,这一直是基于Web的服务的一个巨大安全问题。此外,任何可利用且技术门槛较低的技术都会成为低端麻烦制造者(脚本小子)的工具。在安全漏洞数据库中快速搜索javascriptxss将显示数百页的漏洞。


拼写检查:不是venerability,而是vulnerability。 - Dmitri Farkov

6

这是一种弱类型的脚本语言。通常使用“大而强”的编程语言的程序员会看不起这种无稽之谈。考虑使用它简直是可耻的行为,愿上帝怜悯你的灵魂。


6
JavaScript经常被认为是危险的,或者至少很烦人,原因有两点:
  • 网站可以突然执行你不想要它们执行的操作,比如弹出窗口
  • 网站可以突然阻止你想要执行的操作,比如禁用右键点击
现在,在绝大多数情况下JavaScript是无害的,并且可以真正增强用户体验(例如Ajax)。但只需要一个恶意站点使用JavaScript进行一些邪恶的操作(例如跨站脚本攻击),就足以让你受到威胁。因此,通常最好的做法是全局禁用JavaScript,并仅允许那些你明确信任的站点或域名使用它。在当今这个时代,在互联网上保持警惕实际上是一件好事。

3

这可能会导致安全问题。特别是在旧版本的IE中(现在不太多了)。

或者这可能与Stallman的激烈言论有关;-)


3
除了其他人说的之外,JavaScript还会混淆搜索引擎。您添加的“动态”内容越多,它无法被索引的可能性就越高。此外,互联网被许多人用作参考图书馆。在真实的图书馆中,当您阅读页面时,书籍不会改变。您可能认为自己的网站是一个“应用程序”,但您的用户可能更喜欢将其视为“文档”。
简而言之,JavaScript混淆信息,有时甚至完全拒绝访问(即,JavaScript代码存在错误且崩溃)。这的一个经典例子是,几年前我无法观看由AOL播出的Live8音乐会,因为JavaScript代码写得太糟糕了,它实际上无法在我女朋友的AOL浏览器上工作(具有讽刺意味)。我试图直接访问电影URL,但混淆非常复杂,我找不到它。这没有使我对AOL产生好感。
顺便说一下,我恰好是那些默认禁用JavaScript的人之一。如果我需要它,我可以使用Firefox的NoScript插件在2秒钟内为特定站点或页面启用它(真的)。

混淆搜索引擎与在浏览器中禁用JS无关。 - Alexey Tigarev

3

主要考虑的是安全问题。通过JavaScript利用浏览器安全漏洞进行的驱动程序下载目前是恶意软件传播最常见的方式。


3
不,我认为恶意软件通常通过用户的愚昧行为(“社交工程”)传播。 - Zifre
我也不同意。Javascript在沙盒模型中运行,它本身不能写入任何更改到磁盘中,需要用户接受下载并运行程序(扩展Zifre的内容)。直接说Javascript本身允许安装恶意软件是不准确的。我认为允许Javascript应用程序将某些东西写入磁盘并执行的漏洞非常罕见。当然,假设用户没有愚蠢地允许这样的事情,但默认情况下JS应用程序不允许读取/写入/执行磁盘中的文件。 - Natalie Adams
我认为Flash是现代浏览器安全问题的主要原因。 - Nosredna
1
是的,理论上JavaScript是安全的。但实际上,允许攻击者执行任意代码(即做任何他想做的事情)的漏洞非常普遍:http://www.developingsecurity.com/weblog/2009/09/crossing-the-border-javascript-exploits.html 尽管在许多情况下,JavaScript是用来利用其他组件中的漏洞的中间代理。而且,在这些情况下,“JavaScript并不是真正的问题”的说法并不重要。 - Michael Borgwardt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接