`
zhanjianhua
  • 浏览: 88246 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

http://wwww.javaeye.com/blog/420145

阅读更多
IE中iframe跨域丢失Session问题 p3p
关键字: session 丢失 p3p
  整合客户的登录时,或者其他一个网站通过iframe时,特别是一个http页面,访问一个https页面时,常常会session失效!

1、由于IE的安全限制,将父面所在域加入信任站点就OK了!






2、当“父”页面是https的,通过iframe去访问https页面时,
<iframe name="loginFrame" id="loginFrame" frameborder=NO scrolling=NO src="" class="iframeBody" ></iframe>

会报“有不安全的信息”

办法是: src="/" 就OK!

3、当客户设置了1时,还是不行时,怎么办呢?又查询了一些网上的资料!

IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。

在frameset里面,也就是里面的frame是来自第三方站点(不同IP或不同域名),那么默认情况下IE会自动禁用这些站点的cookie,也就是在请求某url时在HTTP header里不发送它们的cookie,包括session的cookie。注意,这些站点在response里面设置的cookie还是会被发送到浏览器的。

在用户浏览a.php时 A.com写入的为第一方Cookie,其嵌入的iframe指向b.php.这时B.com写入的就为第三方Cookie了,所以它是被IE当在了大门外。 所以,每次当用户提交的cookie提交时,就挂掉了.因为传不到真实的服务器.



解决方案.

PHP的程序

可以直接在B网站中写入www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
<?phpwww.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"')www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
?>www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
这样就能接受第三方的Cookie啦。

lighttpd的服务器

server.modules    = ("mod_setenv")

setenv.add-response-header = ( "P3P" => "CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'")

apache的服务器

<VirtualHost>

Header set P3P 'CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'

</VirtualHost>

IIS的服务器www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
增加一个网站http头来解决问题;www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
管理工具——〉选择一个网站——〉属性——〉http头,增加一个http头www.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
然后输入头名:P3Pwww.kobsky.cn 小眼世界ýñ ëÕRÏz-Z
输入头内容:CP=CAO PSA OUR

jsp页面:

<%

response.setHeader("P3P","CP=CAO PSA OUR");

%>

java代码最简单的办法,增加一个filte:

public class TransNameFilter extends HttpServlet implements Filter {
private static org.apache.commons.logging.Log logWriter =
   LogFactory.getLog(TransNameFilter.class.getName());

/**
*
*/
public TransNameFilter() {
   super();

}
/* (非 Javadoc)
   * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
   */
public void init(FilterConfig arg0) throws ServletException {

}

/* (非 Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
   throws IOException, ServletException {

   HttpServletRequest hreq = (HttpServletRequest) request;
   String transName = hreq.getParameter("transName");
   if (Util.isNullOrEmpty(transName)) {
    logWriter.fatal(" there is no transName for this request");
   } else {

    logWriter.info(" transName is " + transName);
   }
 
   HttpServletResponse res = (HttpServletResponse) response;
        //iframe引起的内部cookie丢失
   res.setHeader("P3P","CP=CAO PSA OUR");
   if (chain != null)
    chain.doFilter(request, response);

}

/* (非 Javadoc)
   * @see javax.servlet.Filter#destroy()
   */
public void destroy() {

}

}
原文URL:http://wwww.iteye.com/blog/420145
分享到:
评论

相关推荐

    http://yourgame.javaeye.com/blog/252853

    NULL 博文链接:https://yanxinfeng.iteye.com/blog/524496

    jquery图片放大镜效果

    本附件下载自 http://www.javaeye.com/topic/626010

    常用Java Web应用软件 (LNMJ,LAMJ)安装

    http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 ...

    Learning XNA 4.0 中文版全书下载

    Learning XNA 4.0 中文版全书...http://xxing22657-yahoo-com-cn.javaeye.com/ 主要发布Java等其他语言的相关文章。 还是那句话: 欢迎有兴趣的朋友共同探讨交流。 同时欢迎有出版合作意向的出版社洽谈出版事宜。

    flex从入门到实践

    第一阶段(2周左右每天...参考网文:http://jackweijie.javaeye.com/blog/191452 参考书:Flex 入门教程http://www.5uflash.com/Flex-AIR/Flexziliao/17.html flex入门介绍:http://download.csdn.net/source/452847

    Flex + Hessian 留言本

    Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...

    JWFD工作流系统源代码包(ECLIPSE开发版)

    http://comsci.javaeye.com/ JWFD工作流设计器(带引擎算法)的源代码包, 实在不好意思,这个包的资源文件缺失了,导致编译时报错,经过反馈, 修改了这个问题,在资源中新增加下载,本下载停止使用,非常抱歉 请...

    pager-taglib-2.0完整源码和Struts演示示例工程

    在Struts中应用标签的数据库分页示例(dbpage.jsp),打开方法: ...打开方法: http://localhost:8080/pagertaglib/test1.jsp&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;制作示例参考了: ...

    Android 中文API 合集(102 篇)

    Android 中文API 合集(102 篇)

    Faceye 基础版概框

    更多内容请访问:http://ecsun.javaeye.com 作者:海鹏 联系:myecsun@hotmail.com/Q:82676683/ 1.技术体系 Ext2.1,Struts1.3,Hibernate3.2,Spring2.5,Acegi 1.06,MySQL 2.功能概述: Blog,RSS订阅,网址导航 3.特色 ...

    PowerCmd_v2.1 Build 120 官方最新原版破解

    keygen 2.X注册机 ...至少NOD32就会报且阻止不能运行,试试吧 看着官方的安装包不大,就一同打包了 ...有博客(绝不是我的,呵呵)对这软件有些评价,闲的人就点点看http://pure.javaeye.com/blog/432945?page=2

    JAVA web.xml配置详解

    -- 配置集群的时候,要用到,在这篇文章:“apache+tomcat集群、负载均衡及session复制”里的第三条(http://jiajun.javaeye.com/admin/blogs/278586) --&gt; &lt;distributable/&gt; &lt;!-- context-param 元素用来设定...

    IK Expression V2.0

    IK Expression是一个开源的...http://linliangyi2007.javaeye.com/blog/337069 GoogleCode开源项目 :http://code.google.com/p/ik-expression/ GoogleCode SVN下载:http://ik-expression.googlecode.com/svn/trunk/

    已解决FCKeditor在Weblogic下发布Error Loading错误的例子

    已解决FCKeditor在Weblogic下发布Error Loading错误的例子,采用了网上比较流行的"通过虚拟地址解决fckeditor错误的加载/fckeditor/fckstyles.xml”,具体方法可参照:...

    apache tomcat 6集群负载和session复制

    无意间看到tomcat 6集群的内容,就尝试配置了一下,还是遇到很多问题,特此记录。apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。...http://jackandroid.javaeye.com/blog/627147

Global site tag (gtag.js) - Google Analytics