diff --git a/django/contrib/admin/templates/admin/base.html b/django/contrib/admin/templates/admin/base.html index d1216a114e1..f3b403bdb3b 100644 --- a/django/contrib/admin/templates/admin/base.html +++ b/django/contrib/admin/templates/admin/base.html @@ -25,7 +25,7 @@ {% if user.is_active and user.is_staff %}
{% trans 'Welcome,' %} - {% firstof user.first_name user.username %}. + {% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}. {% block userlinks %} {% url django-admindocs-docroot as docsroot %} {% if docsroot %} diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 9e8f9825d65..2d65bb22dc8 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -113,9 +113,13 @@ You can use any number of values in a ``{% cycle %}`` tag, separated by spaces. Values enclosed in single (``'``) or double quotes (``"``) are treated as string literals, while values without quotes are treated as template variables. -Note that the variables included in the cycle will not be escaped. This is -because template tags do not escape their content. If you want to escape the -variables in the cycle, you must do so explicitly:: +Note that the variables included in the cycle will not be escaped. +This is because template tags do not escape their content. Any HTML or +Javascript code contained in the printed variable will be rendered +as-is, which could potentially lead to security issues. + +If you need to escape the variables in the cycle, you must do so +explicitly:: {% filter force_escape %} {% cycle var1 var2 var3 %} @@ -203,9 +207,13 @@ passed variables are False:: {% firstof var1 var2 var3 "fallback value" %} -Note that the variables included in the firstof tag will not be escaped. This -is because template tags do not escape their content. If you want to escape -the variables in the firstof tag, you must do so explicitly:: +Note that the variables included in the firstof tag will not be +escaped. This is because template tags do not escape their content. +Any HTML or Javascript code contained in the printed variable will be +rendered as-is, which could potentially lead to security issues. + +If you need to escape the variables in the firstof tag, you must do so +explicitly:: {% filter force_escape %} {% firstof var1 var2 var3 "fallback value" %}