IE中iframe跨域访问

1      什么叫跨域?

       指在A系统(第一方)中通过URL直接调用B系统(第三方),并且两个系统分别部署在不同的域内,简单的理解就是访问这两个系统需要不同的IP。后面说明也已A系统、B系统为例。

2      跨域会引发什么问题?

       在IE中,A系统中的iframe或者frame跨域访问了B系统一个资源时,IE浏览器默认设置是禁用第三方Cookie的,这就导致向B系统发送请求时丢失了JSESSIONID,从而B系统服务器中就无法得到session对象,就会引发一系列问题。关于Cookie和session的关系,可以看前一篇文章Session深度解析,这里不再赘述。

       IE中如此处理可能也是出于安全考虑,经测试,在Chrome、FireFox中默认是允许第三方Cookie的,也就不会存在跨域引发的问题。这种跨域的情况通常出现在多个系统间互相嵌入某些功能。

3      如何解决?

       解决方案可以分两个方面,一种是客户端(需要访问A系统的浏览器)处理,另一种是服务端(B系统)处理。

3.1  浏览器

3.1.1  放弃IE

       那是不可能的。

3.1.2  允许第三方Cookie

       工具 - Internet选项 - 隐私 - 高级 - 勾选替代自动cookie处理 - 确定。

3.1.3  设置可信站点

       访问A系统前,将B系统的IP添加到可信站点中,这样设置能比接受第三方Cookie安全些。

       工具 - Internet选项 - 安全 - 受信任的站点 - 站点 - 添加 - 确定。

3.2  服务器

3.2.1  可以被集成的模块不需要Session

       局限性太大。

3.2.2  P3P协议

       在B系统中允许被跨域访问的功能模块中加入P3P响应头,response.setHeader("P3P","CP=CAOPSA OUR");,记住是B系统中加,不是A系统。

       关于P3P的介绍可以看这篇文章http://www.cnblogs.com/_franky/archive/2011/03/16/1985954.html

       (完)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术

简要分析ZooKeeper基本原理及安装部署

Zookeeper官网地址: http://zookeeper.apache.org/

813
来自专栏IT技术精选文摘

Apache Kafka性能优化

什么是Apache Kafka? Apache Kafka是一个发布-订阅消息系统。 由LinkedIn发起,于2011年初开源。 LinkedIn开发Kafk...

2726
来自专栏zhangdd.com

亿级请求下多级缓存那些事 转载

摘要: 什么是多级缓存 所谓多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升访问效率,这也是应用最广的方案之一。我们应用的整体架构如图1所示: 图1...

873
来自专栏用户2442861的专栏

nginx的配置、虚拟主机、负载均衡和反向代理(1)

nginx在前面,我写过好几篇,相似的介绍烂它在各个平台上的安装配置以及和php-fpm的连接等。今天,这一篇,着重讲解它的配置,其中包括它比较擅长的负债均衡...

1161
来自专栏七夜安全博客

OD常用断点之CC断点

1132
来自专栏开发之途

用GitHub和Hexo搭建个人博客

962
来自专栏北京马哥教育

能当主力,能入虚拟机,还能随时打包带走,Linux 就是这么强大

这里介绍一下自己管理自己的Linux桌面的一点经验吧,我觉得还是有不少可取之处的。先来说一下大多数人管理Linux桌面的方法有哪些不方便的地方吧:

1690
来自专栏顶级程序员

几张趣图助你理解HTTP状态码~

HTTP状态码(图一): ? 注释: 301—永久移动。被请求的资源已被永久移动位置; 302—请求的资源现在临时从不同的 URI 响应请求; 305—使...

3998
来自专栏架构师之路

TCP接入层的负载均衡、高可用、扩展性架构

一、web-server的负载均衡 ? 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是...

4246
来自专栏娱乐心理测试

私有API检查工具详解

2085

扫码关注云+社区