Ajax Security (1)

下面的内容参考自: http://www.whirlycott.com/phil/2005/04/15/security-in-an-ajax-world/

文章中大概提到了采用Ajax的RIA在安全方面会遇到的问题,主要是如何限制用户访问受保护的数据。

文章中提到了3种方法,都是针对返回数据是XML格式的:

首先就是返回的XML数据的Tag是由服务器随机生成的,并在HTML中内嵌用来查询的XPath语句。具体做法是服务器首先生成正常内容的XML数据,其中的Tag都是有意义的。然后通过XSLT变化,把XML数据的Tag变成随机的。

这种方法由于在服务器进行XSLT变换,增大了服务器的开销;另外需要在使用该XML数据的HTML页面中嵌入准确的XPath语句,所以整合起来不方便。

其次就是在服务器动态生成的页面中嵌入UUID,作为HTTP请求头中的一个值发送给服务器。服务器可以验证Token是否正确来判断是否允许访问。

js 代码
  1. //Generated on the server and included as part of the dynamically generated HTML   
  2. var ajaxToken = “dff0194b-384f-43d3-0059-889247de5f88″;         
  3.   
  4. //Make a request for some data and include the token   
  5. var req = new XMLHttpRequest();   
  6. req.setRequestHeader(”AJAX-Token”, ajaxToken);   
  7.     

会带来的问题就是如果第三方需要使用你提供的服务的话,那么也需要你提供Token。

最后一种方法就是使用传统的HTTP Session来管理认证。当用户访问某个Ajax风格的网站时,在Session中存放一个允许他们访问受限资源的属性。当XMLHttpRequest发送请求的时候,它会发送当前网站中所有活动的session cookie。这种做法是较容易实现,而且较好的办法。

这种方法要求Ajax页面和XML数据需要在同一个域中,否则cookie发送不到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值