利用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閱讀 1,320評論 0 6
  • 什么是跨域 跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實...
    他方l閱讀 1,075評論 0 2
  • 什么是跨域 跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實...
    HeroXin閱讀 848評論 0 4
  • 1、iframe 定義和用法 iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。 HTML 與 X...
    _雙眸閱讀 2,378評論 0 1
  • 元素會創建包含另外一個文檔的內聯框架(即行內框架); 一、align 屬性(不贊成) align屬性規定ifram...
    puxiaotaoc閱讀 19,766評論 0 14