gpt4 book ai didi

Python无法识别请求 header 中的cookie

转载 作者:行者123 更新时间:2023-11-30 23:09:06 26 4
gpt4 key购买 nike

在工作中,我们一直在开发一个 python 应用程序(特别是 django),它间歇性地表现得好像无法识别请求中发送的某些 cookie。

该问题并不总是发生,但一旦发生,它似乎会无限期地持续存在。有时,可以通过清除 cookie 并重新加载页面来解决问题。

这些 cookie 都是有效的(尽管其中有相当多的第三方 cookie),并且在服务器和浏览器支持的最大大小之内。

最佳答案

解决方案

如果您的应用程序需要使用“SimpleCookie”(Python 库和框架广泛使用)解释 Python 中的“Cookie” header ,并且您网站的域设置了超出您控制范围的 cookie,请避免出现以下问题的 Python 版本: #22931 ( https://bugs.python.org/issue22931 ) 正在发挥作用。

该错误存在于 3.3.x、3.4.x 和 3.5.x 以及 2.7.9 的多个版本中。

详细信息

问题的诊断最终相当简单,但我想我应该使用更通用的语言在这里分享它,因为搜索问题没有产生任何有用的结果,直到它被缩小到特定的存在一些 cookie 中的有效字符。

在 Python 2.7.9(以及 3.x 的多个版本)中,存在一个错误,即值中带有“[”或“]”的 cookie 会导致“Cookie” header 的解析无提示地失败。由于方括号是 cookie 值 ( http://www.rfc-editor.org/rfc/rfc6265.txt ) 的有效字符,并且通常在第 3 方库中使用,因此该问题可能不利于 Web 应用程序中的 cookie 驱动功能。

它特别难以捉摸,因为只有当它尝试解析值中带有方括号的第一个 cookie 时,cookie 解析才会终止。这意味着如果 cookie 碰巧以不同的顺序发送,则可能不会出现问题。

例如

如果请求头格式为Cookie: important_cookie=foobar; bad_character=[ 比“important_cookie”的值在应用程序中可用——但是如果请求 header 已被Cookie: bad_character=[; important_cookie=foobar.

<小时/>

一旦知道问题是由方括号引起的,就很容易找到 Python 中报告的潜在错误,但深入研究根本问题可能会很麻烦。

关于Python无法识别请求 header 中的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31397170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com