`
littcai
  • 浏览: 245529 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

跨域访问种种

阅读更多

前言  

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

 

跨域页面访问

原因

      这种方式主要出现在多个系统集成的情况下,主系统以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。

 

 

 

 

3
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics