您当前的位置:首页 > 互联网教程

如何提高JavaScript的安全性

发布时间:2025-05-22 16:14:20    发布人:远客网络

如何提高JavaScript的安全性

一、如何提高JavaScript的安全性

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

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

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

4、限制功能限制功能只要最近在父浏览器窗口中试过执行self.close()的人就知道JavaScript会停止执行一些恶意的代码。但Web还很年轻并且JavaScript还很新的时候,一些人以关闭访问者的浏览器窗口为娱乐。几个月之后,父浏览器窗口的self.close()就成为了一个受限功能。

5、实际上,JavaScript中有许多受限功能。包括访问浏览器的历史记录、上载文件、提交、发送邮件、改变菜单栏、在一边打开一个会被用户忽视的小于100像素的窗口。

6、同源策略脚本只能读取和修改同源文档的属性。这种同源策略也涵盖端口和协议。所以,如果一个脚本的源端口是80并且协议是HTTP,那么就不能操作源为端口21及FTP协议的文档。这种限制逻辑是为了避免信息泄漏。设想我是一个不怀好意的家伙。如果没有同源策略,只要我的脚本在运行,我就可以提取任何另一个浏览器窗口中的信息并使用XMLHTTP或另一个方法将其发往我自己的Web站点。当然大多数的信息是无用的,但是也可能包含信用卡号等。这就看你数据挖掘的本事了!

二、用JavaScript开发的服务端存在哪些安全问题

1、Caja是google开发和维护的一个前端安全框架,专注于第三方接入的安全。我们为什么最终选择了它?

2、因为JavaScript是一门动态的,解释性语言,并且我们也很难控制到JavaScript运行的虚拟机这个层面,这让实现一套JavaScript的安全机制变得很困难,但业界也有几个公司做过尝试,我们可以稍微剖析一下。

3、首先,为什么第三方在我们系统中使用JavaScript是危险的,主要包含以下几个方面

4、可以说,如果第三方的JavaScript在我们系统中不受任何控制,那么就没有任何安全可言。

5、所以,如何让外部编写的JavaScript语言可以安全的运行在我们的系统中,这是一个研究的话题。

6、一个语言的安全策略,我们要想控制,通常是两中思路

7、比如Java语言,我们可以修改其虚拟机的运行环境,上下文,来达到对里面net等这些接口的控制

8、在NodeJs中,也有个VM模块用来控制虚拟机的上下文。

9、这些都是很好的思路,很可惜,JavaScript的运行时环境,我们是没办法控制的,因为浏览器是运行在用户客户端的。这就需要走另外一个路线,修改语言代码本身,也就是编译。

三、html中编入javascript代码,有什么要注意的安全问题吗

1.对服务器的安全,由服务器代码进行验证,js验证只针对用户输入,保证不了服务器安全。

2.本地安全:本地安全由浏览器控制,js管不了。

3.源代码安全:无法保证,使用压缩可提高阅读难度。

4.沙箱安全:注意编写涉及到安全沙箱限制的代码,如http和https之间,跨域等。

5.代码引用安全:如死循环,大的内存泄露等等。

6.项目安全:签定保密协议,使用各种方式留住员工。

.......................................