PHP关于IE下的iframe跨域导致session丢失问题解决方法_php技巧_脚本之家

前不久搞的一个登陆页面,被别的网址用iframe嵌进去后,死活不能登入。
很分明,session不能够被封存。然而一向在地点栏张开那么些登入页面,一切都例行啊。真是意外啊。
在互联网查找了弹指间。开掘这么些标题还真有那些人谈起到。最终的缓慢解决格局是在十三分登陆页面里增进以下代码:
复制代码 代码如下: header(‘P3P: CP=”ALL
ADM DEV PSAi COM OU奥迪Q7 OTRo STP IND ONL”‘卡塔尔国; session_start(State of Qatar;
也许那些问题跟小编的报到页面是应用javascript的location跳转也许有关。但从不深切测验研讨。
以下是实行阅读: ———————————————
今天在拍卖Tencent相恋的人应用的时候,测验给笔者发来个工单,说选择在IE7
上不能够使用.现身登入超时错误. 第一反馈是session错失了. 于是上网找了下 IE7

bwin必赢棋牌,iframe session错失难点.后来找到如下作品,难题消除:

今天,笔者在校内上做的时刻日记终于上线了。上线第一天有80八个客户设置,但却以外收到众多客商的申报说利用不可用。我前面都是在firefox上开拓的(猜测校内工作职员也是用firefox核实的),在应用IE7测量试验时,却发掘首页之外的页面全都无法符合规律展开。
在网络搜索了成千上万材质,发现在IE7中设有那样的难点:假诺页面中存在着三个或多个iframe的子页面,那么在子页面中创立session大概不可能成功,那样session数据就不可能和别的页面所分享。在开荒校内、51选用时,借使接纳iframe情势,很恐怕会碰着这么的主题素材。何况这么些主题材料只存
在于IE7浏览器中,作者在firefox, IE6和chrome等浏览器中测量检验均没反常。
应用方案是:在运营session_start以前,在程序中加上如下一句,大约是向浏览器声爱他美(AptamilState of Qatar(Nutrilon卡塔尔(قطر‎下安全等第,这样iframe子页面在开创session时就不会有标题了:
header(‘P3P: CP=”ALL ADM DEV PSAi COM OU中华V OTRo STP IND ONL”‘卡塔尔;
此外,笔者还叩问到:假若二级域名中包蕴了下划线,如:your_domain.yourhost.com,在确立和传递session时也大概会现出难题。
一点感想:
1)时隔多年,浏览器包容性难题仍旧未有获取通透到底肃清,IE浏览器照旧是那么让开垦者感觉难熬和煎熬。
2)发表应用前,必须要透过严密的浏览器宽容性测量检验,不然就有一点都不小也许损失应用的首先批客商。

============================================== 别的参谋小说:

减轻iframe中jsessionid不能传递招致session错过的难点
在完成 ISMP2.1.1
接口的切合须求用到sso,而ISMP里定义的接口是索要在iframe等嵌入页面中调用sso接口,在实质上付出中发觉session不恐怕寻常传递。
再度现身难题的场景是: 1.先访谈a站点:
test.jsp的代码为: 复制代码 代码如下:

618119.com

sso .jsp里读取传递的ssoinfo,反向调用ISMP认证接口,
生成session,然后放入钦点的属性值, session .setAttribute;
页面再重定向到 response.sendRedirect;
iframe.jsp中读取session中ssoUser的属性值,会意识不只怕读取。
2.若是先拜见了
192.168.18.3的页面,再拜谒192.168.18.2的页面,这时的iframe嵌入是能够传递已生成好的jsessionid
Cookie. 因而消除的主意有: a.在url中增多jsessionid. 举个例子重定向到
response.sendRedirect(“/iframe.jsp;jsessionid =lizongbo”State of Qatar;
而这种情状下,即便iframe.jsp页面内的别样连接的url未有拉长jsessionid,
也无从持续传递session,可是经过在客商端的js来为种种超连接的href属性重写加上jsessionid.
b.sso.jsp里设置P3P头信息 比如 P3P: CP=”CURa ADMa DEVa PSAo PSDo OU宝马7系 BUS
UNI PUSportage INT DEM STA PRE COM NAV OTC NOI DSP COHighlander” 或 P3P:CP=”CAO PSA OU哈弗”
java代码为: response.addHeader(“P3P”,”/”CAO PSA OU奔驰G级/””State of Qatar;

发表评论

电子邮件地址不会被公开。 必填项已用*标注