欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于Iframe如何跨域訪問(wèn)Cookie和Session的解決方法

 更新時(shí)間:2013年04月15日 11:25:55   作者:  
本篇文章小編將為大家介紹,關(guān)于Iframe如何跨域訪問(wèn)Cookie和Session的解決方法,有需要的朋友可以參考一下

最近做登錄系統(tǒng)的整合,其中遇到的一個(gè)最關(guān)鍵的問(wèn)題為在一個(gè)統(tǒng)一的后臺(tái)里需要無(wú)障礙的訪問(wèn)另外一個(gè)系統(tǒng)后臺(tái),這個(gè)系統(tǒng)是第三方提供的一個(gè)加過(guò)密的系統(tǒng),后臺(tái)自動(dòng)登錄接口是自己分析出來(lái)的,沒(méi)有單獨(dú)提供,當(dāng)從統(tǒng)一后臺(tái)通過(guò)自動(dòng)登錄接口登錄時(shí),系統(tǒng)直接跳轉(zhuǎn)到系統(tǒng)后臺(tái)首頁(yè),后臺(tái)登錄成功后所跳轉(zhuǎn)的URL這里沒(méi)法指定,控制不了跳轉(zhuǎn)的頁(yè)面,如果在統(tǒng)一后臺(tái)里需要鏈接到這個(gè)系統(tǒng)后臺(tái)的另外一個(gè)頁(yè)面,而非后臺(tái)默認(rèn)首頁(yè)時(shí),也就是將第三方系統(tǒng)后臺(tái)的菜單功能放到我們這個(gè)統(tǒng)一后臺(tái)里。

對(duì)于這樣的一個(gè)需要,這里會(huì)遇到一個(gè)問(wèn)題,為了能正常訪問(wèn)第三方系統(tǒng)的后臺(tái)欄目,必需確保已經(jīng)登錄該系統(tǒng),否則會(huì)提示用戶登錄,所以在點(diǎn)擊這些菜單鏈接時(shí),系統(tǒng)必需已經(jīng)登錄。

為了解決這個(gè)問(wèn)題,在頁(yè)面頭部添加了一個(gè)不可見(jiàn)的iframe,使其指向到自動(dòng)登錄接口,這個(gè)接口如果正常通過(guò)瀏覽器地址欄訪問(wèn),當(dāng)用戶名和密碼驗(yàn)證無(wú)誤時(shí),會(huì)跳轉(zhuǎn)到系統(tǒng)后臺(tái)首頁(yè),由于此時(shí)放在了一個(gè)不可見(jiàn)的IFRAME中,所以跳轉(zhuǎn)對(duì)當(dāng)前后臺(tái)頁(yè)面沒(méi)有任何影響。按照我的設(shè)計(jì)方法,系統(tǒng)應(yīng)該就可以正常使用了。

但,既然說(shuō)到但了,就說(shuō)明肯定遇到了問(wèn)題,不然這里不會(huì)來(lái)這么大的一個(gè)轉(zhuǎn)折的。

但由于這里各系統(tǒng)均屬于不同的系統(tǒng),域名不一樣,所以出現(xiàn)了Iframe在IE中,不能正常生成第三方系統(tǒng)Cookie的情況,但在Firefox和其它瀏覽器中均可生成,所以用IE訪問(wèn)時(shí),總是跳轉(zhuǎn)到登錄頁(yè)面。

這里需要說(shuō)明一下,這里的第三方系統(tǒng)放在我們自己的服務(wù)器上的,只是所有源碼加了密!

最后查閱了相關(guān)資料后,發(fā)現(xiàn)在IE中,為了安全,阻止了通過(guò)IFRAME生成第三方域的COOKIE,為了解決這個(gè)問(wèn)題,MS規(guī)定只要在HTTP的HEADER頭中,設(shè)定P3P這個(gè)頭,就可以通過(guò)IFRAME來(lái)生成第三方COOKIE了。

PHP中,P3P HEADER 頭的設(shè)置方法如下:

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);

注意:這里的P3P需要添加到第三方域生成Cookie的那個(gè)文件才生效,否則無(wú)濟(jì)于事。

這里又有問(wèn)題了,第三方系統(tǒng)生成COOKIE在后臺(tái)的一個(gè)叫admin.php的頁(yè)面里生成的,而這個(gè)頁(yè)面又是加過(guò)密的,這可怎么辦了,想了很久,最后同事靈機(jī)一動(dòng),說(shuō)我們可以用我們自己的文件來(lái)包含它???,這方法太妙了,為什么我就沒(méi)有想到了,同事真是太有才了,真是佩服的五體投地,當(dāng)然,我對(duì)他這么一佩服,據(jù)他說(shuō)自己當(dāng)晚也自己佩服了自己一晚上。

所以最后的解決方案為將原來(lái)的admin.php文件命名為admin_2.php,然后新建admin.php,最后在這個(gè)文件中,添加上面所的P3P這個(gè)HEADER頭,并再次包含 admin_2.php這個(gè)文件,最終代碼如下:

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);
include “admin_2.php”;

最后,問(wèn)題徹底解決!

這里標(biāo)題是COOKIE和SESSION的問(wèn)題,實(shí)質(zhì)上,基本上是一回事,SEESION最終的保存也是通過(guò)SESSION_ID保存到COOKIE源碼天空,然后通過(guò)這個(gè)SID到服務(wù)器上找相應(yīng)的SEESION數(shù)據(jù),只要把COOKIE里的SEESION_ID這個(gè)COOKIE給刪掉,SESSION也就失效了。

相關(guān)文章

  • preg_match_all使用心得分享

    preg_match_all使用心得分享

    preg_match_all 進(jìn)行全局正則表達(dá)式匹配,這篇文章主要介紹下preg_match_all的相關(guān)資料,需要的朋友可以參考下
    2014-01-01
  • 詳解PHP中的外觀模式facade pattern

    詳解PHP中的外觀模式facade pattern

    這篇文章主要介紹了詳解PHP中的外觀模式facade pattern的詳細(xì)用法以及代碼實(shí)例,對(duì)此有需求的朋友參考下吧。
    2018-02-02
  • PHP在線打包下載功能示例

    PHP在線打包下載功能示例

    這篇文章主要介紹了PHP在線打包下載功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php打包下載的實(shí)現(xiàn)流程與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-10-10
  • PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法詳解

    PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法詳解

    這篇文章主要介紹了PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法,結(jié)合實(shí)例形式分析了php狀態(tài)模式的概念、原理、定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • PHP生成zip壓縮包的常用方法示例

    PHP生成zip壓縮包的常用方法示例

    這篇文章主要介紹了PHP生成zip壓縮包的常用方法,結(jié)合實(shí)例形式分析了php使用zip格式壓縮文件、目錄以及壓縮并下載的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • php禁用cookie后session設(shè)置方法分析

    php禁用cookie后session設(shè)置方法分析

    這篇文章主要介紹了php禁用cookie后session設(shè)置方法,分析了php相關(guān)配置文件的功能與設(shè)置方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • php使用wordwrap格式化文本段落的方法

    php使用wordwrap格式化文本段落的方法

    這篇文章主要介紹了php使用wordwrap格式化文本段落的方法,涉及wordwrap函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 深入理解PHP原理之執(zhí)行周期分析

    深入理解PHP原理之執(zhí)行周期分析

    這篇文章主要介紹了深入理解PHP原理之執(zhí)行周期,簡(jiǎn)要分析了php程序從編輯到詞法分析、語(yǔ)法分析及解釋執(zhí)行等階段的相關(guān)原理,需要的朋友可以參考下
    2016-06-06
  • Laravel中使用FormRequest進(jìn)行表單驗(yàn)證方法及問(wèn)題匯總

    Laravel中使用FormRequest進(jìn)行表單驗(yàn)證方法及問(wèn)題匯總

    Laravel 5.0 帶來(lái)了FormRequests, 這是一種特殊的類型, 用于在提交表單時(shí)進(jìn)行數(shù)據(jù)的檢查和驗(yàn)證. 每個(gè)FormRequest類至少包含一個(gè)rules()方法, 這個(gè)方法返回一組驗(yàn)證規(guī)則. 除此之外還必須包含一個(gè)authorize()方法, 該方法返回一個(gè)布爾值, 代表是否允許用戶執(zhí)行本次請(qǐng)求.
    2016-06-06
  • php抽獎(jiǎng)概率算法(刮刮卡,大轉(zhuǎn)盤)

    php抽獎(jiǎng)概率算法(刮刮卡,大轉(zhuǎn)盤)

    這篇文章主要為大家詳細(xì)介紹了php中獎(jiǎng)概率算法,可用于刮刮卡,大轉(zhuǎn)盤等抽獎(jiǎng)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06

最新評(píng)論