Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >IE中iframe跨域访问

IE中iframe跨域访问

作者头像
高爽
发布于 2017-12-28 06:53:15
发布于 2017-12-28 06:53:15
4.3K0
举报
文章被收录于专栏:高爽的专栏高爽的专栏

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

       (完)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
跨域访问知多少
浏览器的同源策略,要同源说起。顾名思义,同源就是源头相同,即两个页面的协议、端口和域名都相同,任何一个不满足,都会导致跨域。
黑洞代码
2021/01/14
1.3K0
iframe跨域调用js_ajax跨域访问
本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度。
全栈程序员站长
2022/11/10
11.1K0
iframe跨域调用js_ajax跨域访问
初识P3P
Google 标签: P3P, 第三方cookie, 隐私策略, http head
py3study
2020/01/06
1.8K0
Spring Security---跨域访问和跨站攻击问题详解
说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。
大忽悠爱学习
2021/12/07
1.7K0
Spring Security---跨域访问和跨站攻击问题详解
SpringBoot应用跨域访问解决方案
说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。
字母哥博客
2020/09/23
1.2K0
SpringBoot应用跨域访问解决方案
Axiso解决跨域访问
关键代码是:Axios.defaults.baseURL = '/api',这样每次发送请求都会带一个/api的前缀。
全栈程序员站长
2022/08/15
1.6K0
Axiso解决跨域访问
前端安全编码规范
随着互联网高速的发展,信息安全已经成为企业重点关注焦点之一,而前端又是引发安全问题的高危据点,所以,作为一个前端开发人员,需要了解前端的安全问题,以及如何去预防、修复安全漏洞。下面就以前端可能受到的攻击方式为起点,讲解web中可能存在的安全漏洞以及如何去检测这些安全漏洞,如何去防范潜在的恶意攻击。
coder_koala
2020/12/07
1.4K0
前端安全编码规范
跨域请求传递Cookie问题
前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat。 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服务器返回的Cookie:JSESSIONID。 导致每一个Ajax请求在服务端看来都是一个新的请求,都会在服务端创建新的Session(在响应消息头中设置Set-Cookie:JSESSIONID=xxx)。 而在项目中使用了Shiro框架,用户认证信息是放在Session中的,由于客户端不会把JSESSIONID返回给服务器端,因此使用Session策略存放数据的方式不可用。
编程随笔
2019/09/11
3.5K0
P3P解决cookie跨域
P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。 P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如 “本网站将监测您所访问的页面以提高站点的使用率”或“本网站将尽可能为您提供更合适的广告”等申明。访问支持P3P网站的用户有权查看站点隐私报告,然 后决定是否接受cookie 或是否使用该网站。
全栈程序员站长
2022/11/16
1K0
CSRF攻击原理介绍和利用
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
全栈工程师修炼指南
2020/10/23
4.6K0
CSRF攻击原理介绍和利用
【Django跨域】一篇文章彻底解决Django跨域问题!
项目主页:adamchainz/django-cors-headers:Django 应用程序,用于处理跨域资源共享 (CORS) 所需的服务器标头 (github.com)
LonelySnowman
2022/11/28
6.7K0
springmvc【问题1】跨域
简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求。比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz.com域名下的资源,是受到限制的。现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便。特别是对我这样后台开发人员来讲,这个事情简直神奇。 但跨域的需求却一直都在,为了跨域,勤劳勇敢的程序猿们想出了许许多多的方法,例如,jsonP、代理文件等等。但这些做法增加了许多不必要的维护成本,而且应用场景也有许多限制,例如jsonP并非XHR,所以jsonP只能使用GET传递参数。更详细的资料可以看这里 Web应用跨域访问解决方案汇总
用户5640963
2019/07/26
9400
php跨域访问的session_php跳转到另一个php
参考文章: php跨域:https://blog.csdn.net/ouxiaoxian/article/details/89332027 预检请求是什么:https://www.jianshu.com/p/89a377c52b48 什么时候会发送options请求:https://juejin.im/post/5cb3eedcf265da038f7734c4
全栈程序员站长
2022/11/10
6400
SpringBoot跨域配置
跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
小沐沐吖
2022/09/22
1.3K0
SpringBoot跨域配置
什么是跨域?一文弄懂跨域的全部解决方法
跨域(Cross-Origin Resource Sharing,简称 CORS)是一种安全策略,用于限制一个域的网页如何与另一个域的资源进行交互。这是浏览器实现的同源策略(Same-Origin Policy)的一部分,旨在防止恶意网站通过一个域的网页访问另一个域的敏感数据。
程序员洲洲
2024/06/07
6.3K0
什么是跨域?一文弄懂跨域的全部解决方法
老生常谈:利用Membership实现SSO(单点登录)
虽然有一些现成的第三方解决方案比如:OpenID,Passport,SpaceCard等都还不错,但是要么就是收费的(passport),要么就是有点用不习惯(比如OpenID),另外中途跳到一个界面完全不相同的第三方站点上输入,用户感觉也不太放心。 当然博客园和csdn上也有不少人已经给出了相应的解决方案,但是一圈看下来,虽然思路都行得通,貌似就是没找到不同主域名下直接利用Membership实现的例子。 那么还是自己“造轮子”弄一个简陋一点的方案吧,其实只要用过Membership的朋友都知道“用户是否
菩提树下的杨过
2018/01/23
9730
老生常谈:利用Membership实现SSO(单点登录)
cors解决Web跨域访问问题
首先了解一下什么是跨域以及解决的几种常见方式。 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指,域名,协议,端口均相同。 举例: 相对于
二十三年蝉
2018/02/28
1.6K0
cors解决Web跨域访问问题
Spring MVC 4.2 CORS 跨域访问
跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.foo/image.jpg),域名A的那 Web 应用就会导致浏览器发起一个跨站 HTTP 请求。在当今的 Web 开发中,使用跨站 HTTP 请求加载各类资源(包括CSS、
庞小明
2018/03/09
1.2K0
盘点 Spring Boot 解决跨域请求的几种方式
之所以会出现这个错误,是因为浏览器出于安全的考虑,采用同源策略的控制,防止当前站点恶意攻击 web 服务器盗取数据。
潘志的技术笔记
2024/07/02
2500
盘点 Spring Boot 解决跨域请求的几种方式
通过JSONP实现跨域访问
说到跨域访问就要谈到浏览器的同源策略,所谓同源指的就是协议相同、域名相同、端口号相同,三个条件必须全部匹配,否则就会收到限制,例如:
Dreamy.TZK
2020/09/07
1.8K0
相关推荐
跨域访问知多少
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档