隔离iframe会话

时间:2015-10-22 08:00:55

标签: javascript html iframe

我有6个iframe来自同一个域,但有不同的url和子目录。他们都使用html标题“set-cookie”设置了一个具有相同名称但值不同的cookie。我需要将他们的饼干分开,以免彼此干扰。

这是一个示例代码。感谢

<html>
<head>
    <style type="text/css">
        body, table
        {
            margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden; scrolling=no; position:absolute;;
        }
        iframe
        {
            height: 100%; width: 100%;
        }
    </style>

</head>
<body>
<table>

    <tbody>
            <tr>
               <td>
                <iframe id="1" src="http://example.com/1"></iframe>
                   </td>
                <td>
                <iframe id="2" src="http://example.com/2"></iframe>
                    </td>
                <td>
                <iframe id="3" src="http://example.com/3"></iframe>
            </td>
            </tr>
            <tr>
                <td>
                <iframe id="4" src="http://example.com/4"></iframe>
                    </td>
                <td>
                <iframe id="5" src="http://example.com/5"></iframe>
                    </td>
                <td>
                <iframe id="6" src=http://example.com/6></iframe
            </td>
            </tr>
    </tbody>
        </table>
</body>

  

请注意,我无权访问服务器/域。

2 个答案:

答案 0 :(得分:2)

Cookie包括a path attribute

  

如果属性名称不区分大小写匹配字符串“Path”,   用户代理必须按如下方式处理cookie-av。

     

如果属性值为空或者是第一个字符   attribute-value不是%x2F(“/”):

     

让cookie-path成为默认路径。

     

否则:

     

让cookie-path成为属性值。

     

使用属性将属性附加到cookie-attribute-list   Path的名称和cookie路径的属性值。

Cookie是only sent if the cookie path matches the URL path

配置您的服务器,使其为帧中的6件事物中的每一件提供不同的路径。

答案 1 :(得分:1)

您的用例究竟是什么?因为这对我来说听起来有点奇怪......但是,这很容易;只是命名你的cookie!

document.cookie = 'frameOne=foo';
document.cookie = 'frameTwo=bar';

并访问特定框架中所需的cookie。

正如@Quentin所说; 怀疑这是安全的。如果您希望单独进行身份验证,请使用不同的域,多登录系统或其他任何内容。然而;我希望一个用户登录6次似乎很奇怪。