Preciso escapar caracteres ao enviar e-mails?
Pergunta
Eu estou usando Django Contact Form em um site para permitir que os visitantes a e-mails de envio.
caracteres Atualmente, ele está escapando, aspas de modo simples e duplas são convertidos para '
e "
respectivamente. Os e-mails seria mais legível se aspas foram exibidos como '
e "
.
Eu entendo por que eu nunca deve colocar a entrada unescaped de visitantes em minhas páginas, por causa do risco de XSS. Existe o mesmo risco com e-mails, ou é ok para enviar entrada unescaped do visitante?
Solução
Se estes são e-mails HTML, então você não se importaria a escapar, então eu estou supondo que estes são de texto simples? Caso em que você deseja desativar o citando. Você pode envolver o corpo do seu modelo em
{% autoescape off %}
...
{% endautoescape %}
para deixar seus personagens sozinho.
Outras dicas
Eu ainda codificá-los para ser seguro. Como a maioria dos clientes de e-mail permitem que as imagens, nada para alguém parar de usar um tag img
em um email a dizer ... obter o endereço IP de alguém.