如何提高JavaScript的安全性

ZDNet软件频道 时间:2003-05-26 作者:BUILDER.COM |  我要评论()
本文关键词:
虽然JavaScript有安全性的诟病,但是其中很多是在早期发现和解决了的。实际上JavaScript的安全性已逐步提高,让我们看看这些功能是如何提高JavaScript的安全性的。
本文译自Builder.com,未经许可请勿转载虽然JavaScript有安全性的诟病,但是其中很多是在早期发现和解决了的。实际上JavaScript的安全性已逐步提高,例如对某些兼容性支持的放弃、受限功能、“同源”策略、安全区域以及签名脚本。只有Netscape Navigator过去对数据感染安全性模型的实验是个例外。让我们看看这些功能是如何提高JavaScript的安全性的。

浏览器有不同的安全漏洞

JavaScript的跨浏览器和跨平台特性并不是真正的安全性问题。通过某些修改,在一台苹果电脑的Internet Explorer运行的脚本也可以在一台PC的Netscape上运行。但是对开发来说曾经很困难的平台和浏览器之间的差异同样意味着各种浏览器具有不同的安全漏洞。因此当一个恶意的脚本在Netscape上引发问题的时候,它也许在Internet Explorer、Opera以及Mozilla上失败。

如今,浏览器变得单一,就如同一个村庄的每个农夫都种植同一品种的农作物一样。只要一种单一的农作物疾病就肯定会毁掉整年的全部收成,使这个村庄陷入饥荒。这是一个比较简单的比喻,但是想想,在我妻子Dell机的Windows XP上运行的一个脚本会在她母亲的XP和Windows 98以及我Toshiba电脑的Windows 2000 Server上运行。幸运的是,虽然看起来好像JavaScript完全缺乏安全功能,但实际并不是这样。JavaScript其实拥有一定数量的安全功能。


数据感染安全性模型

Netscape Navigator 3引入了数据感染这个并不长久的概念。当被打开时,数据感染允许一个浏览器窗口察看另一个窗口的属性,而不管该窗口是从哪个服务器装载的。第二个页面的开者需要标记哪些属性在哪里被感染,并不能能传给服务器。虽然是个有趣的主意,但是它需要防御的代码,而且客户端必须允许数据感染。


 

最为客户端的JavaScript安全性的一个重要部分就是有很多事不能做。没有访问客户端文件、查询客户端网络连接、执行操作系统命令或程序的对象。有些时候缺少这些功能很恼人,但是它却避免了铺天盖地的问题。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134