Devo scappare dai personaggi quando invio email?
Domanda
Sto usando Modulo di contatto Django su un sito web per consentire ai visitatori per inviare e-mail.
Attualmente sta sfuggendo ai caratteri, quindi le virgolette singole e doppie vengono convertite rispettivamente in & amp; # 39;
e & amp; quot;
. Le e-mail sarebbero più leggibili se le virgolette fossero visualizzate come '
e "
.
Capisco perché non dovrei mai inserire input senza caratteri di escape dai visitatori nelle mie pagine Web, a causa del rischio di xss. Esiste lo stesso rischio con le e-mail o è consentito inviare l'input senza caratteri di escape del visitatore?
Soluzione
Se si tratta di e-mail HTML, non ti dispiacerebbe la fuga, quindi suppongo che siano di testo semplice? Nel qual caso si desidera disabilitare il preventivo. Puoi avvolgere il corpo del modello in
{% autoescape off %}
...
{% endautoescape %}
per lasciare soli i tuoi personaggi.
Altri suggerimenti
Li codificherei comunque per sicurezza. Poiché la maggior parte dei client di posta elettronica consente immagini, nulla impedisce a qualcuno di utilizzare un tag img
in un'e-mail per dire ... ottenere l'indirizzo IP di qualcuno.