Internet Explorer 9和Chrome不处理set-cookie标头

时间:2011-08-17 00:42:53

标签: google-app-engine google-chrome cookies internet-explorer-9

我正在测试我的网站,该网站适用于Iron,Firefox和Opera,现在使用的是Internet Explorer 9和Chrome。它为每个浏览器设置了两个重要的cookie,IE9和Chrome除外。这些浏览器似乎忽略了set-cookie标头。在我降低安全性和隐私设置之前,Facebook的Cookie在Internet Explorer中也丢失了(除了来自skype.com的cookie,IE中根本没有任何cookie)。

为域modern-iq.appspot.com设置了cookie(此项目的alpha版本可在http://modern-iq.appspot.com访问)。它不包含下划线,看起来符合标准。

独立于实际路径,我总是为我的cookie选择“/”。 域名始终是modern-iq.appspot.com(没有跨域cookie)。没有iframe。

更新:我做了以下测试:

工作

  • Ubuntu上的铁12.0.750.0(88853)(64位):cookie工作
  • Ubuntu上的Firefox 6.0(64位):cookie工作
  • Windows XP上的Firefox 3.6.13:Cookie正常工作
  • Windows 7上的Firefox(未知版本):Cookie正常运行

不起作用

  • Windows 7上的Internet Explorer 9:Cookie不起作用
  • Windows XP上的Chrome 13.0.782.112米:Cookie不起作用

更新:请求失败的Chrome和工作铁的日志:

可疑的cookie是请求链末尾的fb_user和fb_access_token。

All cookies are accepted, but IE9 doesn't send them

set_cookie调用(Python):

set_cookie(self.response, FACEBOOK_USER_COOKIE_NAME, str(profile["id"]), domain='modern-iq.appspot.com',
                   expires=time.time() + COOKIE_EXPIRY_SPAN) #30 * 86400)
set_cookie(self.response, FACEBOOK_ACCESS_TOKEN_COOKIE_NAME, str(access_token), domain='modern-iq.appspot.com',
                   expires=time.time() + COOKIE_EXPIRY_SPAN) #30 * 86400)

set_cookie(Python):

def set_cookie(response, name, value, domain=None, path="/", expires=None):
    """Generates and signs a cookie for the give name/value"""
    for domain in domain, : #'localhost':
        logging.info('DOING COOKIE OF DOMAIN '+repr(domain)+'...')
        timestamp = str(int(time.time()))
        value = base64.b64encode(value)
        signature = cookie_signature(value, timestamp)
        cookie = Cookie.BaseCookie()
        cookie[name] = "|".join([value, timestamp, signature])
        cookie[name]["path"] = path
        if domain: cookie[name]["domain"] = domain
        if expires:
            cookie[name]["expires"] = email.utils.formatdate(
                expires, localtime=False, usegmt=True)
        response.headers._headers.append(("Set-Cookie", cookie.output()[12:]))

1 个答案:

答案 0 :(得分:0)

您需要设置一个反映与Cookie相关的隐私权政策的P3P标头。 http://blogs.msdn.com/b/ieinternals/archive/2010/06/05/understanding-internet-explorer-cookie-controls.aspx