Dois-je échapper des caractères lors de l'envoi d'e-mails?
Question
J'utilise le formulaire de contact de Django sur un site Web pour autoriser les visiteurs envoyer des emails.
Actuellement, il s'agit de caractères d'échappement. Les guillemets simples et doubles sont donc convertis respectivement en & # 39;
et & amp; quot
. Les courriels seraient plus lisibles si les guillemets étaient affichés comme '
et "
.
Je comprends pourquoi je ne devrais jamais intégrer dans mes pages Web des informations non échappées des visiteurs, en raison des risques de xss. Y a-t-il le même risque avec les courriels ou est-il correct d'envoyer la saisie non échappée du visiteur?
La solution
Si ce sont des courriels HTML, cela ne vous dérangerait pas de s'échapper, alors je suppose que ce sont des textes en clair? Dans ce cas, vous souhaitez désactiver la citation. Vous pouvez envelopper le corps de votre modèle dans
{% autoescape off %}
...
{% endautoescape %}
pour laisser vos personnages seuls.
Autres conseils
Je les encoderais toujours pour être en sécurité. Étant donné que la plupart des clients de messagerie permettent les images, rien n'empêche quelqu'un d'utiliser un tag img
dans un courrier électronique pour dire ... obtenir l'adresse IP de quelqu'un.