#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.

Reply via email to