客户端java本质上不如javascript安全吗?

时间:2015-06-16 10:51:09

标签: java javascript security

客户端java上出现了一系列错误和漏洞,导致各种版本被apple,Mozilla等列入黑名单。然而,javascript是一种控制较少的语言,没有静态类型。今天javascript允许许多相同的潜在问题:本地存储,访问不同窗口中的数据,打开与服务器的连接(虽然不是任意套接字)。

简单地说javascript是经过更好的测试,包括许多浏览器供应商在内的社区,javascript是否有点受限,没有套接字,或者javascript,实际上就像java一样容易受到攻击?

1 个答案:

答案 0 :(得分:4)

这不是语言的问题。这是环境的问题。

在网页上运行Java小程序当前涉及使用Java插件,该插件采用包含功能的JVM来执行我们不希望网页能够执行的各种操作并在其中运行代码JVM在“沙箱”中阻止它做那些事情。 JVM仍然具有这些功能,环境(插件)只是试图拒绝访问它们,浏览器必须完全信任插件才能这样做,因为它无法控制插件加载后的功能。 (这是NPAPI插件的本质。)插件的沙箱被破坏的历史,更糟糕的是,更新过程很笨拙,用户往往不跟上安全补丁。由于似乎就像浏览器的错误一样,当插件遭到入侵(事实并非如此)时,浏览器供应商正试图在浏览器中逐步淘汰Java。谷歌还声称他们最新的Chrome架构使支持NPAPI变得困难。

相比之下,在网页上运行JavaScript涉及浏览器在其自己的嵌入式环境中运行JavaScript代码(浏览器)可以完全控制,从而严格限制访问少量数据从一开始就设计的浏览器控制功能(在现代功能的情况下)拒绝恶意使用。 “攻击面”(正如安全人员所说)大幅减少,并且在浏览器供应商的控制下直接响应这些攻击。您可以看到浏览器供应商更喜欢这种情况。

当然,浏览器也会受到损害,这就是为什么浏览器供应商如此努力地让我们接受自动更新。

旁注:浏览器供应商完全有可能直接在浏览器中构建一个从安全设计的有限子集JVM,就像他们在其中构建了一个JavaScript VM一样(通过V8,SpiderMonkey等项目),并对其进行相同程度的控制。他们只是没有。相反,他们专注于推进JavaScript。