Internet Explorer 9 и Chrome не обрабатывают заголовки файлов cookie - PullRequest
1 голос
/ 17 августа 2011

Я тестирую свой сайт, который отлично работает с Iron, Firefox и Opera, теперь использую Internet Explorer 9 и Chrome.Он устанавливает два важных куки в каждом браузере, кроме IE9 и Chrome.Кажется, эти браузеры игнорируют заголовки set-cookie.До тех пор, пока я не снизил настройки безопасности и конфиденциальности, файлы cookie Facebook также отсутствовали в Internet Explorer (за исключением файлов cookie с сайта skype.com, в IE не было файлов cookie вообще).

Файлы cookie установлены для доменаmodern-iq.appspot.com (альфа-версия этого проекта доступна по адресу http://modern -iq.appspot.com ).Он не содержит подчеркивания и выглядит стандартно для меня.

Независимо от фактического пути, я всегда выбираю «/» для своих файлов cookie.Домен всегда современный-iq.appspot.com (без междоменных файлов cookie).IFRAME не существует.

ОБНОВЛЕНИЕ: Я провел следующие тесты:

работа

  • Железо 12.0.750.0 (88853) в Ubuntu (64-разрядная версия):файлы cookie работают
  • Firefox 6.0 в Ubuntu (64-разрядная версия): файлы cookie работают
  • Firefox 3.6.13 в Windows XP: файлы cookie работают
  • Firefox (неизвестная версия) в Windows 7: файлы cookie работают

не работают

  • Internet Explorer 9 в Windows 7: файлы cookie не работают
  • Chrome 13.0.782.112 м в WindowsXP: куки не работают

ОБНОВЛЕНИЕ: Журналы запросов о сбое Chrome и работающем железе:

Сомнительными являются файлы cookie fb_user и fb_access_token в конце цепочки запросов.

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

set_cookie Calls (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 голосов
/ 18 августа 2011

Вам необходимо установить заголовок P3P, который отражает политику конфиденциальности, связанную с cookie. http://blogs.msdn.com/b/ieinternals/archive/2010/06/05/understanding-internet-explorer-cookie-controls.aspx

...