Author: lukeplant
Date: 2011-07-06 16:44:54 -0700 (Wed, 06 Jul 2011)
New Revision: 16521

Modified:
   django/trunk/docs/ref/models/fields.txt
   django/trunk/docs/topics/security.txt
Log:
Improved warning about file uploads in docs, and added link from security 
overview page

Modified: django/trunk/docs/ref/models/fields.txt
===================================================================
--- django/trunk/docs/ref/models/fields.txt     2011-07-06 23:25:30 UTC (rev 
16520)
+++ django/trunk/docs/ref/models/fields.txt     2011-07-06 23:44:54 UTC (rev 
16521)
@@ -577,6 +577,8 @@
 this calls the :meth:`~django.core.files.storage.Storage.url` method of the
 underlying :class:`~django.core.files.storage.Storage` class.
 
+.. _file-upload-security:
+
 Note that whenever you deal with uploaded files, you should pay close attention
 to where you're uploading them and what type of files they are, to avoid
 security holes. *Validate all uploaded files* so that you're sure the files are
@@ -585,6 +587,10 @@
 root, then somebody could upload a CGI or PHP script and execute that script by
 visiting its URL on your site. Don't allow that.
 
+Also note that even an uploaded HTML file, since it can be executed by the
+browser (though not by the server), can pose security threats that are
+equivalent to XSS or CSRF attacks.
+
 By default, :class:`FileField` instances are
 created as ``varchar(100)`` columns in your database. As with other fields, you
 can change the maximum length using the :attr:`~CharField.max_length` argument.

Modified: django/trunk/docs/topics/security.txt
===================================================================
--- django/trunk/docs/topics/security.txt       2011-07-06 23:25:30 UTC (rev 
16520)
+++ django/trunk/docs/topics/security.txt       2011-07-06 23:44:54 UTC (rev 
16521)
@@ -152,7 +152,9 @@
 security protection of the web server, operating system and other components.
 
 * Make sure that your Python code is outside of the web server's root. This
-  will ensure that your Python code is not accidentally served as plain text.
+  will ensure that your Python code is not accidentally served as plain text
+  (or accidentally executed).
+* Take care with any :ref:`user uploaded files <file-upload-security>`.
 * Django does not throttle requests to authenticate users. To protect against
   brute-force attacks against the authentication system, you may consider
   deploying a Django plugin or web server module to throttle these requests.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to