我发现在Safari一个奇怪的cookie的问题。 如果您冲浪http://2much.ch你可以用FF / IE和站点内冲浪进入。
但是如果你使用Safari浏览器,你可以只输入一次; 你不能在工地内上网。 我发现,Safari浏览器没有设置进入的cookie,但FF / IE浏览器。
这里有什么问题?
我发现在Safari一个奇怪的cookie的问题。 如果您冲浪http://2much.ch你可以用FF / IE和站点内冲浪进入。
但是如果你使用Safari浏览器,你可以只输入一次; 你不能在工地内上网。 我发现,Safari浏览器没有设置进入的cookie,但FF / IE浏览器。
这里有什么问题?
它看起来像你打了Safari浏览器的bug在这里; 要重定向任何访问浏览器/入境,而在同一时间设置cookie,并且遇到该302 HTTP状态时,Safari浏览器是忽略的Set-Cookie头:
$ curl -so /dev/null -D - http://4much.schnickschnack.info/
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.7.61
Date: Sun, 19 Jul 2009 12:20:49 GMT
Content-Type: text/html;charset=utf-8
Connection: keep-alive
Content-Length: 14260
Content-Language: de
Expires: Sat, 1 Jan 2000 00:00:00 GMT
Location: http://4much.schnickschnack.info/entry
Set-Cookie: colorstyle="bright"; Path=/; Expires=1248092449.12
Set-Cookie: _ZopeId="73230900A39w5NG7q4g"; Path=/
从技术上讲,这将是苹果的基础类的错误,我发现一个WebKit的错误 ,指出这种情况。
我想解决办法是设置Cookie没有,但的index_html在进入代替。
在因为我第一次回答了这个问题的几年间,这个问题现在看来解决了,至少这是Safari浏览器6时, 有人测试的所有主流浏览器的Cookie设置-支持对302重定向在2012年 。
看起来这不再是一个问题。 见http://blog.dubbelboer.com/2012/11/25/302-cookie.html
一个月前,我就遇到了这个问题。 起初我以为这是一个已损坏的饼干罐,因为我可以清理出cookies和去。
然而,它再次弹出。 这一次,我花了一个小时做的时候,看什么送,审查什么Safari浏览器发回,我发现这个问题。
在这种情况下,我不得不Cookie值的阵列之前的重定向登录后被发送给浏览器。 值看起来像“用户名”,“用户全名”,“其他一些ID”,等等。
(是的,ID是加密的,因此不用担心有)
我的用户的全名其实是在<lastname>, <firstname>
格式。
当野生动物园发布的饼干回服务器,逗号后一切后,名字被放弃了。 它只是回发值到这一点。
当我删除了逗号值的其余部分开始工作就好了。
因此,它看来,如果您发送包含逗号cookie的值,然后Safari不正确转义,在它的内部存储。 这使我想到,如果他们不正确转义逗号,则有可能与Safari浏览器的cookie处理代码的一些安全问题。
顺便说一句,这是在Win 7测试64位使用Safari 4.0.5。 我也忍了,在一个网页: http://cookietest.livelyconsulting.com/这说明这个确切的问题。 (我删除试验场)
IE,FF和Chrome都正确设置Cookie。 Safari不。
我们碰到的一个非常类似的问题,即Safari浏览器(诉7.0.6)会忽略一个cookie。 该cookie头看起来完全正常的,几乎是相同的将其记住另一个饼干。
原来,罪魁祸首是具有格式错误的以前的cookie头expires
值。 碎饼干头的Safari处理显然不一样强大,其他浏览器。
我跑进使用Chrome相同的问题。 Chrome不忽略,当您重定向设置cookie头,但你永远不知道订单(设置cookie的第一或重定向第一)。 下面是我曾尝试:
我有一个网站,该网站支持英语和法语。 我实现它(用PHP)是这样的:
本地主机有一个链接到localhost / FR(其设置cookie来法语和重定向到本地主机)。 有用。 (第一设定的cookie)
本地主机/路径1有一个链接到localhost / FR?返回= /路径1(其中设置cookie来法国并重定向到localhost /路径1)。 它不工作。 (重定向第一,语言并没有改变)
本地主机/路径1有一个链接到localhost / FR?返回= www.google.com(其中设置cookie来法国并重定向到谷歌)。 当我回到了我的网站再次,这是法语。 (这意味着设置cookie来法国不会被忽略,仅重定向之后执行)
希望我说清楚了,英语是一门外语对我来说。