【问题标题】:Django is adding quotes to cookies with colonsDjango 正在用冒号向 cookie 添加引号
【发布时间】:2015-01-09 13:56:02
【问题描述】:

我跑:

response.set_cookie(key, value=value, expires=expires, path=path, domain=domain)

当值为:aa:aa
cookie值为:"aa:aa"

当值为:aa
cookie值为:aa

值中有冒号时需要防止django加引号

【问题讨论】:

  • 也许在设置时尝试使用urllib.quote进行编码,并在阅读时使用urllib.unquote进行解码?
  • 这种行为可能是一种安全措施,您不应绕过它。阅读 cookie 时最好删除引号。

标签: python django string cookies


【解决方案1】:

将值设置为 cookie 时,只需使用 urllib.parse.quote_plus()urllib.parse.quote() 对其进行编码。例如

value = urllib.parse.quote_plus(value)
response.set_cookie(key, value=value, expires=expires, path=path, domain=domain)

在从 cookie 中获取价值的同时,分别使用 urllib.parse.unquote_plus()urllib.parse.unquote() 将其解码回来。例如

if key in request.COOKIES:
    value = urllib.parse.unquote_plus(request.COOKIES[key])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多