利用iframe引入需要认证的跨域页面

1、需求描述
一个页面中包含两部分内容,一块内容是本系统中的页面,要展示一些本系统中后端接口返回的数据的内容,一块完全是另一个项目的页面,但这个页面是需要认证信息才能打开的,因此会涉及到跨域信息传递的问题,iframe 引入的页面能拿到主站页面传递给它的认证信息,然后正常展示出来页面。
2、解决思路
实现的时候考虑使用iframe引入第三方页面的方式。
1) 传递认证信息的方式—postMessage
对于主站向iframe引入的页面传递认证信息,可以通过 postMessage 来进行,但是要能够 postMessage 传递认证信息的前提是iframe 引入的页面能够正常显示,但是事实上没有认证信息,iframe引入的页面是不能正常显示的,这貌似就陷入了一个死循环。
2)传递认证信息—cookie
另一个想到的方法就是 cookie 传递信息了,这个引入的页面和当前的主站页面有一个关系就是,引入的页面是主站的子域,那么写cookie的时候有一个规则,cookie 的 domain 写成 .aaa.com写到主站,那么 test.aaa.com 和aaa.com 页面都可以获取到cookie信息并利用起来。

上面的第二种方法是已经经过实践检验的,在打开主站的情况下,cookie 的domain设置成.xxx.com的方式,浏览器打开子域的页面,子域页面中是可以拿到这个cookie的信息的。

但是当前的问题并不是直接在浏览器中打开页面,而是在主站中以 iframe 的方式引入页面,这样也能看到吗??

3、实践
有句话是这么说的,实践是检验真理的唯一标准,经过实践检验后,第二种方法是可行的,在浏览器中保存过一个页面的cookie之后,无论是直接打开一个页面,还是别的页面通过 iframe 引入该页面,cookie都是可以被利用到的。
4、思考
所以 cookie 其实是存在浏览器中的,只要浏览器中的这个cookie 文件保存,并且cookie是有效的,那么在当前页面引入与本页面无关的页面,都是可以的,csrf 跟这个有什么关系呢?

其实觉得自己写了一堆智障的东西,以后还是要多写,多研究,才能真正知道自己有多浅薄。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 5,115评论 0 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    他方l阅读 4,697评论 0 2
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    HeroXin阅读 4,282评论 0 4
  • 1、iframe 定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。 HTML 与 X...
    _双眸阅读 7,180评论 0 1
  • 元素会创建包含另外一个文档的内联框架(即行内框架); 一、align 属性(不赞成) align属性规定ifram...
    puxiaotaoc阅读 19,834评论 0 14