目前,用户对因特网服务的安全问题越来月关注,网络本身是不安全的,在Ajax应用中加入适当的安全处理机制与为产品添加安全机制是大不相同的,很明显,如果涉及用户的财产安全,例如网上购物或是提供付费服务,就很有必要添加安全性机制。
当Ajax应用被访问,Web服务器会向客户端浏览器发送一些JavaScript指令,客户端浏览器将执行这些指令。为了让浏览器执行这些指令,Ajax应用的用户必须对该应用和应用的作者提供足够的信任度,换句话说就是为这指令提供足够的权限以便它们能够被浏览器执行,一般来说,浏览器的供应商会对浏览器进行设置以阻止任意的JavaScript都被执行。浏览器用户可以修改这些设置以便可以正常执行某些Ajax应用中的JavaScript 指令。
在电脑中所有的数据都是二进制的,包括代码和一些纯粹的数据,他们之间的区别就在于代码可以被执行,例如Ajax中的JavaScript代码,它可以被浏览器执行完成许多功能,这也带来了安全隐患。只要代码存放在某台电脑上,它就可以通过网络扩散到其他的电脑上,并在这些电脑上执行。为了解决这个问题,大多数的浏览器厂商都是在一个沙箱(sandbox)中执行JavaScript代码,这是一个密封的环境,它对计算机资源具有很少或没有访问权限。Ajax应用不能对本地文件系统进行读取和写数据操作。除了自身所在的Web域,它不能建立与另一个Web域的网络连接。
JavaScript可以自动地组织脚本从一个服务器访问另一个服务器上的文档属性,这项限制防止了脚本获取私人的信息——诸如目录结构或用户活动历史记录等。JavaScript提供了同源安全机制,也就是当从一个源中装载一个文档时,从另一个源装载的脚本不能在一个窗口或框架中获取或设置特定浏览器和HTML对象特定的属性。JavaScript定义了一个源的URL(protocol://host),此处host可以包含端口(port)。