跨域访问种种

前言  

    首先要指出的是,这里的跨域访问,应该细分为跨域页面访问跨域信息采集。现在具体来分析说明一下

 

跨域页面访问

原因

      这种方式主要出现在多个系统集成的情况下,主系统以iframe或frameset的方式将其他子系统的页面嵌进来。由于安全原因浏览器会阻止iframe或frameset的cookie,由于SESSION需要以内存cookie的方式存储id到客户端,因此SESSION将一起失效。

PS:如果在嵌入页面内部操作的话,不会有跨域问题,该问题仅在多处嵌入的情况下发生.

解决办法

     在子系统的登录代码中加入P3P的认证,即允许第三方读取cookie,这样cookie值才能被浏览器正确的读取并保存。代码如下:

response.setHeader("P3P","CP=CAO PSA OUR"); 

跨域信息采集

原因

     这种方式主要出现在Web2.0利用AJAX采集跨域系统数据的时候,如采集气象网站的天气预报信息。出现的主要原因是使用AJAX方式跨域调用,同样出于安全性考虑XMLHttpRequest是禁止跨域访问的,否则你以为采到的是一条文本信息,而实际是一条可执行JS木马的话,你的网站可想而知。

解决办法

  1. 利用script脚本访问跨域url。该方法需要跨域系统代码可控,输出格式为script脚本。客户端可直接对脚本进行操作。
  2. 服务器代理模式。通过将请求发送至服务器,由服务器代理访问跨域系统,再将输出的内容返给客户端。在Java中可使用apache的HttpClient。

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值