Safari不设置Cookie但IE/FF确实如此

Gom*_*mez 45 cookies safari cross-browser

我在safari上发现了一个奇怪的cookie问题.如果您浏览http://2much.ch,您可以使用FF/IE进入并在网站内冲浪.

但是如果你使用safari,你只能输入一次; 你不能在网站内冲浪.我发现Safari没有设置输入的cookie,但FF/IE确实如此.

这有什么不对?

Mar*_*ers 63

看起来你在这里遇到了Safari漏洞; 您在同时设置cookie时将任何访问浏览器重定向到/ entry,并且Safari在遇到302 HTTP状态时忽略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=/
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这将是Apple的基础类中的一个错误,我发现了一个WebKit错误,说明了这种情况.

我想解决方法是将cookie设置为不在index_html中而是在条目中.

自从我第一次回答这个问题以来的这几年里,这个问题现在看来已经解决了,至少在Safari 6中,有人在2012年测试了所有主流浏览器的302重定向支持Set-Cookie.

  • 感谢好的解释,Martjin!我已将代码放入/ entry.现在它有效.谢谢! (2认同)

Ike*_*nez 7

看起来这不再是一个问题.请参见http://blog.dubbelboer.com/2012/11/25/302-cookie.html

  • 不,Catalina 上的 Safari 14 仍然存在问题:( (3认同)
  • 这显然仍然是 Safari 中的一个问题,请参阅文章下方的评论... (2认同)

Not*_*tMe 6

一个月前,我遇到了这个问题.起初我以为它是一个腐败的饼干罐,因为我可以清理饼干然后去.

然而,它又出现了.这次我花了一个小时的时间浏览它,观察发送的内容,回顾一下safari发回的内容,然后我发现了问题.

在这种情况下,我在重定向之前登录后将一组cookie值发送到浏览器.这些值看起来像'用户ID','用户全名','其他ID'等.

(是的,id是加密的,所以不用担心)

我的用户全名实际上是一种<lastname>, <firstname>格式.

当safari将cookie发布回服务器时,删除了姓氏后面的逗号之后的所有内容.它只返回到那时的价值.

当我删除逗号时,其余值开始正常工作.

所以看起来如果你发送一个包含逗号的cookie值,那么safari就无法正确地逃避它的内部存储.这让我觉得如果他们没有正确地转义逗号,那么safari的cookie处理代码可能存在一些安全问题.

顺便说一句,这是在Win 7 x64上使用safari 4.0.5进行测试的. 我还在http://cookietest.livelyconsulting.com/上建了一个网页 ,显示了这个确切的问题.(我删除了那个测试网站)

IE,FF和chrome都正确设置了cookie.野生动物园没有.

  • 克里斯:你的问题与解析器完全相关.它与在HTTP分析时间内CFNetwork如何将Set-Cookie标头合并为一个Set-Cookie标头有关.通常,可以使用","分隔符将重复HTTP标头合并为一个标头.不幸的是,Set-Cookies一直是历史上破碎的标题.最近在IETF会议上对此进行了讨论.Cookie的内部表示没有问题. (4认同)
  • 我不确定为什么有人会在近一年的时间内投票; 但是,Safari 5.0.3中的行为仍然存在. (3认同)
  • @Mark Pauley:很高兴看到苹果开发人员积极谈论safari如何处理cookie.我在http://www.ietf.org/mail-archive/web/http-state/current/msg00645.html上查看了你的一些信件.我认为safari是唯一一个展示这种破坏行为的浏览器是足够的理由拉动功能. (2认同)
  • @Mark Pauley:感谢您的链接!所以看起来像引号、分号、逗号和反斜杠之类的东西应该避免,除非以某种方式编码,比如使用 base64 ... (2认同)