8000 `http.cookies` module does not parse obsolete RFC 850 date format · Issue #123401 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

http.cookies module does not parse obsolete RFC 850 date format #123401

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Konano opened this issue Aug 27, 2024 · 1 comment
Closed

http.cookies module does not parse obsolete RFC 850 date format #123401

Konano opened this issue Aug 27, 2024 · 1 comment
Labels
stdlib Python modules in the Lib dir type-bug An unexpected behavior, bug, or error

Comments

@Konano
Copy link
Contributor
Konano commented Aug 27, 2024

Bug report

Bug description:

Description: According to RFC 9110, a recipient that parses a timestamp value in an HTTP field MUST accept all three HTTP-date formats. This includes the obsolete RFC 850 format, e.g., Sunday, 06-Nov-94 08:49:37 GMT. However, the Python standard library module http.cookies currently fails to parse this format, which leads to the cookie being discarded entirely.

Steps to Reproduce:

  1. Attempt to parse a cookie with a date in the obsolete RFC 850 format using the http.cookies module.
  2. Observe that the module fails to parse the date, resulting in the cookie being discarded.

Code Example:

import http.cookies

cookie_string = 'example=value; expires=Sunday, 06-Nov-94 08:49:37 GMT'
cookie = http.cookies.SimpleCookie()
cookie.load(cookie_string)

# The expected behavior is that the cookie's expiration date is correctly parsed.
# However, the module fails to parse the date in the obsolete RFC 850 format,
# resulting in the cookie being discarded.
print(cookie['example'].get('expires'))

Expected Behavior:
The http.cookies module should correctly parse the obsolete RFC 850 date format and retain the cookie.

Actual Behavior:
The module fails to parse the date, resulting in a KeyError and the cookie being discarded.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs

@Konano Konano added the type-bug An unexpected behavior, bug, or error label Aug 27, 2024
Konano added a commit to Konano/cpython that referenced this issue Aug 27, 2024