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 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

nginx简易教程

Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

1512
来自专栏崔庆才的专栏

腾讯云Ubuntu搭建TinyProxy代理服务器

本节为大家讲解腾讯云主机搭建TinyProxy代理服务器的过程。什么是TinyProxy它是一个代理服务器,用来实现http或https代理,windows系统...

2.9K0
来自专栏前端大白专栏

关于跨域这几天的总结

1566
来自专栏散尽浮华

nginx的web缓存服务环境部署记录

web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问...

3447
来自专栏Web项目聚集地

超详细的Nginx简易教程,一学就会!

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。本文的作者为「静默虚空」 ,可点击文...

763
来自专栏崔庆才的专栏

分布式爬虫的部署之Gerapy分布式管理

1716
来自专栏云计算教程系列

如何在CentOS 7上安装Elasticsearch 1.7,Logstash 1.5和Kibana 4.1(ELK Stack)

在本教程中,我们将介绍在CentOS 7上安装Elasticsearch ELK Stack,即Elasticsearch 1.7.3,Logstash 1.5...

921
来自专栏Linyb极客之路

nginx常见架构

总结 开启压缩主要是为了减少网络传输消耗,浏览器会对压缩的文件进行解压缩,这个过程要快很多。

914
来自专栏成猿之路

超详细的Nginx简易教程,一学就会!

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。本文的作者为「静默虚空」 ,可点击文...

1102
来自专栏编程

2.2 在Windows下安装Python

如果你使用的是32位windows操作系统,选择下载Windows x86 executable installer。如果是64位windows操作系统,还可以...

1738

扫码关注云+社区