JavaScript有多危险?


9

我最近开始使用NoScript(除了ABP之外)。习惯了一段时间后,偶尔访问新网站时可能需要单击一下,以调查该网站为何无法正常工作以及我需要在何处允许JavaScript。额外的安全值得吗?

这里讨论一些争议。我想归结为JavaScript是否对您的计算机真正构成威胁。有什么想法吗?


2
如果您觉得没有NoScript进行浏览是一个不错的主意,请尝试tinyurl.com/y8qdwsv
乔什(Josh K)2010年

1
如果您想大笑,请尝试tinyurl.com/ydwxk63
Hasaan Chop 2010年

@JoshK owwww,CPU和内存上升!
Maxim Zaslavsky 2010年

1
而且很多事情可能会崩溃。它的2.4MB的iframe
乔希ķ

@Josh K:我很失望FireFox允许这样做。Opera表现出不同的行为(虽然不那么令人讨厌),但仍然不及格。Chrome一点也不大惊小怪。它似乎限制了它弹出的频率。(是的,我很愚蠢,可以尝试3次)
mpen

Answers:


3

NoScript最初存在的原因不一定是JavaScript 本身,而是浏览器中的安全漏洞。过去,Firefox和其他浏览器都具有许多安全漏洞,这些漏洞使恶意JavaScript会对用户的系统造成不良影响。(在许多情况下,可以通过JavaScript执行本机代码,这意味着网站可能会对您的计算机执行任何操作。)还存在跨站点脚本攻击的可能性,例如@Eric说。

但是,除非您定期浏览可疑的网站,否则这些威胁很少而且相隔甚远,因此,NoScript是否值得您解决麻烦由您来决定。就我个人而言,我认为这样做不值得,尤其是考虑到越来越多的网站完全需要JavaScript才能运行,这意味着您将不断将脚本或整个域列入白名单(到那时,您正在击败某些首先使用它的好处)。


4

请参阅http://en.wikipedia.org/wiki/Cross-site_scriptinghttp://en.wikipedia.org/wiki/Cross-site_request_forgery,以获取具有恶意意图的人如何使用JavaScript引起问题的示例。

FWIW-我个人不喜欢NoScript,因为我认为这是一个头疼的问题。有时,您只需要观察浏览的位置并希望获得最佳结果即可。


2
我不知道,我认为与开发人员相比,这两个问题对于Web开发人员来说都是更大的问题。我想一个设计不当的网站很容易受到那些类型的漏洞的侵害,这些漏洞继而可能危害用户的数据。但是,实际上,他们会窃取什么样的东西?您在一些论坛上的用户名?哎呀 唯一重要的是当您获得信用卡信息和东西时,但绝对不要在您根本不信任的网站上输入此类信息。
mpen 2010年

2
@Mark,您了解CSRF是什么吗?假设您的浏览器对您的银行开放,而另一个标签对一个邪恶的站点开放。使用CSRF,这个邪恶的网站会诱骗您的浏览器向您的银行发出请求,要求从您的帐户中转出所有资金。
Zoredache

1
您可以先退出敏感站点,然后再去其他地方,以保护自己免受CSRF的侵害。尽管我想认为在设计银行时不会有这个明显的漏洞,但我知道它们还没有过去。
Zurahn

1
  • 编写不当或恶意的JavaScript可能会使您的浏览器崩溃,或使其冻结
  • JavaScript可能会导致偷渡式下载

  • 但是,如果正确使用并按预期使用,JavaScript确实可以增强Web浏览体验

有优点也有缺点,但是总的来说值得麻烦。作为记录,我始终使用NoScript扩展,有选择地为我定期访问的站点启用脚本,并且我希望它们是安全的。


0

尽管在技术上已经在图像处理和XML渲染等方面进行了攻击,但出于所有意图和目的,目前存在三种攻击媒介:社交工程(诱骗用户,使用户运行恶意文件),插件(Flash)和JavaScript。

JavaScript直接允许运行指令,对于Internet Explorer而言,这尤其糟糕,因为过去ActiveX控件的决策和实施都非常糟糕(尽管Microsoft在这方面有所改进)。您也不必一定要访问阴暗的网站,因为广告是使用JavaScript投放的,并且在许多情况下,恶意广告已投放到合法的网站。

简短答案:如果您要担心威胁,则需要考虑三件事:Internet Explorer,Flash和JavaScript。


“ JavaScript直接允许指令运行”-源代码?由于ActiveX,在较旧版本的IE中确实如此,但是如今,只有在发现安全漏洞后,这种情况才会发生,并且通常会很快对其进行修补。实际上,JavaScript本身对您的系统并不能做太多事情-最多可能会降低浏览器的速度或使其崩溃。
Sasha Chedygov

2
JavaScript是一种编程语言,您可以编写指令。我指的不是机器代码级别的指令,而是语言本身-运行JavaScript就是运行代码。不多不少。与HTML和CSS(IE中的eval除外)相反,它们仅是描述性的。因此,通过JavaScript发生漏洞的可能性从天文角度来看更高-仅在实现或规范中没有错误的情况下,JavaScript才是良性的,这永远不会发生。
Zurahn

0

很少有计算机(如果有任何连接到Internet的计算机是可利用的)。一个人甚至不需要MeltDown或Spectre在您的计算机上获取恶意广告,它像往常一样来自受信任的网站。

这就是去年恶意广告的流行变得如此严重的原因,这是由Zirconium组强行重定向伪装的恶意软件和虚假的Flash更新造成的。丹·古丁-1/23/2018,5:00 AM

在1990年代,Netscape Navigator对JavaScript进行了数字签名,现在我们需要对JavaScript进行改进。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.