iframe可能会有不同的会话吗?

时间:2011-10-18 00:10:02

标签: session iframe

我想构建一个管理工具,我可以“冒充”我网站的用户,而不必以管理员身份丢失会话。

我希望能够打开一个iframe,以“作为用户”查看网站,而无需更改打开iframe的页面状态。

这可能吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

这是可能的,但有一点“但是”:)

开始时只有几个选项:

  1. 使用基于URL的会话令牌(如禁用cookie时为Java Servlet执行)
  2. 为“普通”网站和管理界面使用不同的域
  3. iframe本身对您没有多大帮助:它将始终与浏览器共享其Cookie。因此,为了避免这种情况,您可以使用上述任一选项 - 但这不取决于iframe

答案 1 :(得分:1)

用什么语言?我的回答是基于PHP是您选择的语言的假设。

首先,如果会话模拟是您可以将您的网站视为另一个用户,同时仍保持您的管理员登录完好无损的唯一方式,我会说您的计划错误。

你可以这样做的一种方式,再次假设你正在使用PHP以及其中的默认会话管理功能而你没有自定义会话处理程序将加载iframe网址{{1参数。

更好的方法是创建您的网站并通过各种用户对象对用户进行身份验证,然后添加某种url参数,例如?PHPSESSID=sessionidhere

然后,当您加载页面时,如果您已经以管理员身份登录,则代码将仅检查参数是否存在。然后,该页面将使用标识为?userbrowseid=123的用户的用户对象覆盖当前用户对象。应采取措施确保您的会话cookie不会被模拟的用户对象覆盖。由于这将在iframe中,您的网站将作为管理员工作,iframe将作为用户对象加载。