【问题标题】:Get cookies from another domain in IE在 IE 中从另一个域获取 cookie
【发布时间】:2012-11-08 12:36:12
【问题描述】:

我有以下内容:

用户单击链接mydomain.com/redirect.php,通过setcookie 函数获取cookie(用于mydomain.com),然后转到另一个页面(header('Location: ...');) - 比如说lp.html

然后,在那个页面上有一个脚本: gs('mydomain.com/getcookie.php', 'client=52', function() {});,这个函数如下:

gs = function(path, args, fn) {
        var p = document.head || document.getElementsByTagName("head")[0]
        var s = document.createElement("script");
        p.appendChild(s);
        if (fn) {
            if (s.addEventListener) {
                s.addEventListener('load', fn, false);
            } else if (s.attachEvent) {
                s.attachEvent("onload", function() {
                    fn(window.event)
                });
            } else {
                s["onload"] = fn;
            }
            s.onreadystatechange = function() {
                fn()
            }
        }
        s.src = path + "?" + args;
}

getcookie.php 脚​​本从$_COOKIE 获取一个值(因为它在我的域中)并返回一个小 js,如下所示:myParam = 'cookieValue'; 供以后在 js 中使用。

所以,这很好用……除了 Internet Explorer。只有当我手动允许它接受所有 cookie 时,它​​才能在那里工作。

回答:(感谢 Duellsy)

添加

header('P3P: CP="CAO PSA OUR"');
header('P3P: CP="HONK"');

【问题讨论】:

    标签: php javascript internet-explorer cookies


    【解决方案1】:

    IE 有一些难以诊断的 cookie 安全问题,请尝试将其添加到页面顶部

    <?php header('P3P: CP="CAO PSA OUR"'); ?>
    

    查找 Internet Explorer P3P,了解更多信息

    关于“这是什么”的一个很好的回应:https://stackoverflow.com/a/5258105/1613391

    【讨论】:

    • 两个都放也无妨,所以双方都知道这个政策,否则可能会发生冲突,无法检索到cookie
    • 哦!伟大的!如果我将此标头添加到redirect.phpgetcookie.php,这将是有效的,太棒了! =)
    • 确保您使用的策略实际上反映了您将放置数据的用途。您不希望人们对您采取法律行动,因为您一直在谎报您对他们的数据所做的事情。
    • @Quentin,感谢您的通知,但我认为不会有问题,因为这不是用户数据 - 这是我用于跟踪客户网站上的用户操作的数据
    • “用户做什么”是“用户数据”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多