En fait, ça dépend. Django du moteur de template ne échapper automatiquement, donc vous n'avez pas vraiment besoin de s'échapper.
Si vous ajouter un modèle de filtre "safe" comme {{c.title|safe}} alors vous ne devez pas vous inquiéter à propos de choses comme par injection html, parce que "sûr" les marques de la chaîne en tant que telle, et cela signifie qu'il ne sera pas échappé.
Il y a aussi un {% sur autoescape %}...{% endautoescape %} balise de modèle, où "on" peut être changé en "off", si nécessaire. Par défaut c'est sur, et la balise n'est pas nécessaire.
Autres moteurs de template peut pas s'échapper par défaut, Jinja2 est l'un d'entre eux.
Quelle est la différence entre {{ c.titre }} et {{ c.titre|escape }}, si Django ne auto échapper déjà? Vous pouvez toujours contrôler le autoescaping: {% sur autoescape %} {{ corps }} {% endautoescape %} Ici, la fuite filtre peut être utilisé pour s'échapper de manière sélective
HTML auto-échappement est activé par défaut, de sorte que vous n'avez pas besoin d'manuellement échapper dans la plupart des cas, mais pas tous!
Verser le contenu d'une variable à l'intérieur d'un élément HTML est très bien:
<p>{{ variable }}</p>
Django va automatiquement s'échapper les caractères <, >, &, " et ', qui est ce qui est nécessaire ici.
C'est aussi OK pour vider une variable à l'intérieur d'un attribut, depuis " et ' sont à la fois échappé, mais assurez-vous que vous n'oubliez pas d'inclure les guillemets car les places ne sont pas échappé:
Si vous souhaitez utiliser une chaîne à l'intérieur de Javascript en ligne, vous devez utiliser le escapejs filtre, et n'oubliez pas les guillemets. Ceci vous protège de s'échapper de la cite pour la variable Javascript, et de s'échapper de la <script> balise à l'aide de </script>:
<script>
var value ="{{ variable|escapejs }}";</script>
Ahhhhhhh. escapejs était celui que je cherchais. Je ne pouvais pas trouver n'importe où
Auto-échappement est activée par défaut dans les modèles django, de sorte que vous n'avez pas besoin d'utiliser échapper. Coffre-fort est utilisé lorsque vous souhaitez éteindre et laisser le modèle de système de rendu de savoir que votre date est sûre dans un un-échappé à la forme. Voir le django docs pour plus de détails:
En fait, ça dépend. Django du moteur de template ne échapper automatiquement, donc vous n'avez pas vraiment besoin de s'échapper.
Si vous ajouter un modèle de filtre "safe" comme
{{c.title|safe}}
alors vous ne devez pas vous inquiéter à propos de choses comme par injection html, parce que "sûr" les marques de la chaîne en tant que telle, et cela signifie qu'il ne sera pas échappé.Il y a aussi un {% sur autoescape %}...{% endautoescape %} balise de modèle, où "on" peut être changé en "off", si nécessaire. Par défaut c'est sur, et la balise n'est pas nécessaire.
Autres moteurs de template peut pas s'échapper par défaut, Jinja2 est l'un d'entre eux.
Vous pouvez toujours contrôler le autoescaping: {% sur autoescape %} {{ corps }} {% endautoescape %} Ici, la fuite filtre peut être utilisé pour s'échapper de manière sélective
OriginalL'auteur Evgeny
HTML auto-échappement est activé par défaut, de sorte que vous n'avez pas besoin d'manuellement échapper dans la plupart des cas, mais pas tous!
Verser le contenu d'une variable à l'intérieur d'un élément HTML est très bien:
Django va automatiquement s'échapper les caractères
<
,>
,&
,"
et'
, qui est ce qui est nécessaire ici.C'est aussi OK pour vider une variable à l'intérieur d'un attribut, depuis
"
et'
sont à la fois échappé, mais assurez-vous que vous n'oubliez pas d'inclure les guillemets car les places ne sont pas échappé:Si vous souhaitez utiliser une chaîne à l'intérieur de Javascript en ligne, vous devez utiliser le
escapejs
filtre, et n'oubliez pas les guillemets. Ceci vous protège de s'échapper de la cite pour la variable Javascript, et de s'échapper de la<script>
balise à l'aide de</script>
:escapejs
était celui que je cherchais. Je ne pouvais pas trouver n'importe oùOriginalL'auteur Flimm
Oui! Que faire si ils sont entrés
<script>alert('boom');</script>
comme le titre?Django autoescape cela rend beaucoup plus facile.
OriginalL'auteur brool
Auto-échappement est activée par défaut dans les modèles django, de sorte que vous n'avez pas besoin d'utiliser échapper. Coffre-fort est utilisé lorsque vous souhaitez éteindre et laisser le modèle de système de rendu de savoir que votre date est sûre dans un un-échappé à la forme. Voir le django docs pour plus de détails:
OriginalL'auteur ars