Skip to content

Commit

Permalink
Fixed django#16384: warn against accessing request.POST/REQUEST in mi…
Browse files Browse the repository at this point in the history
…ddleware.

Thanks, Tom Christie.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16734 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jacobian committed Sep 9, 2011
1 parent d036b87 commit 0b174cc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -120,6 +120,7 @@ answer newbie questions, and generally made Django that much better:
Sengtha Chay <sengtha@e-khmer.com>
ivan.chelubeev@gmail.com
Bryan Chow <bryan at verdjn dot com>
Tom Christie <tom@tomchristie.com>
Antonis Christofides <anthony@itia.ntua.gr>
Michal Chruszcz <troll@pld-linux.org>
Can Burak Çilingir <canburak@cs.bilgi.edu.tr>
Expand Down
2 changes: 2 additions & 0 deletions docs/topics/http/file-uploads.txt
Expand Up @@ -238,6 +238,8 @@ could, for example, use custom handlers to enforce user-level quotas, compress
data on the fly, render progress bars, and even send data to another storage
location directly without storing it locally.

.. _modifying_upload_handlers_on_the_fly:

Modifying upload handlers on the fly
------------------------------------

Expand Down
15 changes: 15 additions & 0 deletions docs/topics/http/middleware.txt
Expand Up @@ -97,6 +97,21 @@ calling ANY other request, view or exception middleware, or the appropriate
view; it'll return that :class:`~django.http.HttpResponse`. Response
middleware is always called on every response.

.. note::
Accessing :attr:`request.POST <django.http.HttpRequest.POST>` or
:attr:`request.REQUEST <django.http.HttpRequest.REQUEST>` inside
middleware from ``process_request`` or ``process_view`` will prevent any
view running after the middleware from being able to
:ref:`modify the upload handlers for the
request <modifying_upload_handlers_on_the_fly>`, and should normally be
avoided.

The :class:`~django.middleware.csrf.CsrfViewMiddleware` class can be
considered an exception, as it provides the
:func:`~django.views.decorators.csrf.csrf_exempt` and
:func:`~django.views.decorators.csrf.csrf_protect` decorators which allow
views to explicitly control at what point the CSRF validation should occur.

.. _template-response-middleware:

``process_template_response``
Expand Down

0 comments on commit 0b174cc

Please sign in to comment.