#23638: Django raises exceptions on unicode in cookies/headers
-------------------------------------+-------------------------------------
Reporter: defcube | Owner: nobody
Type: Bug | Status: closed
Component: HTTP handling | Version: 1.7
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
Has patch: 1 | checkin
Needs tests: 0 | Needs documentation: 0
Easy pickings: 0 | Patch needs improvement: 0
| UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by defcube:
Old description:
> I'm am cleaning up my random errors on `conjurorthegame.com`, and this
> one has me stumped. Should I build a custom error emailer that ignores
> these, or is it something django should fix?
>
> {{{
> Internal Server Error: /join1/
> Traceback (most recent call last):
> File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
> packages/django/core/handlers/base.py", line 87, in get_response
> response = middleware_method(request)
> File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
> packages/django/contrib/sessions/middleware.py", line 15, in
> process_request
> session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
> File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
> packages/django/utils/functional.py", line 55, in __get__
> res = instance.__dict__[self.func.__name__] = self.func(instance)
> File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
> packages/django/core/handlers/wsgi.py", line 143, in COOKIES
> raw_cookie = get_str_from_wsgi(self.environ, 'HTTP_COOKIE', '')
> File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
> packages/django/core/handlers/wsgi.py", line 262, in get_str_from_wsgi
> return value if six.PY2 else value.encode(ISO_8859_1).decode(UTF_8)
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 33:
> invalid continuation byte
> }}}
>
> Unparsed cookies.
> {{{
> Request repr():
> <WSGIRequest
> path:/join1/,
> GET:<QueryDict: {}>,
> POST:<QueryDict: {}>,
> COOKIES:<could not parse>,
> META:{'CONTENT_LENGTH': '',
> 'CONTENT_TYPE': '',
> 'DOCUMENT_ROOT': '/usr/local/nginx/html',
> 'HTTP_ACCEPT':
> 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
> 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
> 'HTTP_ACCEPT_LANGUAGE': 'it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4',
> 'HTTP_CONNECTION': 'keep-alive',
> 'HTTP_COOKIE':
> 'csrftoken=89uzZHmJ9ALZXxSTvVnEueCçWÈ\x03Ç\x9c(êh]Û\x8eÉ÷\x89&Æ/\x19á\x0f\t'
> '*£\x15Îè×MJ\x0e.1412634272',
> . . .
> }}}
New description:
I'm am cleaning up my random errors, and this one has me stumped. Should I
build a custom error emailer that ignores these, or is it something django
should fix?
{{{
Internal Server Error: /join1/
Traceback (most recent call last):
File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
packages/django/core/handlers/base.py", line 87, in get_response
response = middleware_method(request)
File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
packages/django/contrib/sessions/middleware.py", line 15, in
process_request
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
packages/django/utils/functional.py", line 55, in __get__
res = instance.__dict__[self.func.__name__] = self.func(instance)
File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
packages/django/core/handlers/wsgi.py", line 143, in COOKIES
raw_cookie = get_str_from_wsgi(self.environ, 'HTTP_COOKIE', '')
File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site-
packages/django/core/handlers/wsgi.py", line 262, in get_str_from_wsgi
return value if six.PY2 else value.encode(ISO_8859_1).decode(UTF_8)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 33:
invalid continuation byte
}}}
Unparsed cookies.
{{{
Request repr():
<WSGIRequest
path:/join1/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:<could not parse>,
META:{'CONTENT_LENGTH': '',
'CONTENT_TYPE': '',
'DOCUMENT_ROOT': '/usr/local/nginx/html',
'HTTP_ACCEPT':
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_COOKIE':
'csrftoken=89uzZHmJ9ALZXxSTvVnEueCçWÈ\x03Ç\x9c(êh]Û\x8eÉ÷\x89&Æ/\x19á\x0f\t'
'*£\x15Îè×MJ\x0e.1412634272',
. . .
}}}
--
--
Ticket URL: <https://code.djangoproject.com/ticket/23638#comment:6>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/065.153db128cb4e59a1de0bd7e7f6227070%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.