2009-09-11 13 views
5

Sto utilizzando Django Contact Form su un sito Web per consentire ai visitatori di inviare e-mail.Devo sfuggire ai caratteri durante l'invio di e-mail?

Attualmente, sta sfuggendo ai caratteri, quindi le virgolette singole e doppie vengono convertite rispettivamente in ' e ". Le e-mail sarebbero più leggibili se le virgolette fossero visualizzate come ' e ".

Capisco perché non dovrei mai inserire input non visitati dai visitatori nelle mie pagine Web, a causa del rischio di xss. C'è lo stesso rischio con le e-mail, o è giusto inviare l'input senza escape del visitatore?

risposta

4

Se si tratta di e-mail HTML, non ti dispiacerebbe fuggire, quindi presumo che si tratti di testo in chiaro? In tal caso, si desidera disabilitare il quoting. Puoi avvolgere il corpo del tuo modello in

{% autoescape off %} 
... 
{% endautoescape %} 

lasciare i tuoi personaggi da soli.

+0

Sì, sono semplici email di testo. Penso di essere stato eccessivamente paranoico, preoccupato che un lettore di e-mail analizzasse il semplice testo come html. – Alasdair

+0

Non c'è bisogno di essere paranoici, dato che la tua e-mail sarà in formato di testo normale, quindi i client "dovrebbero" interpretarla come testo semplice e non notare i tag. – Humphrey

+0

Non è possibile trasformare un'e-mail in testo normale in un messaggio di posta elettronica HTML semplicemente includendo l'HTML nel corpo. L'intestazione 'Content-Type: text/html' dice al client che è HTML, mentre' Content-Type: text/plain' è per email in chiaro. Se non è presente un'intestazione, viene assunto il valore predefinito di testo normale. –

0

Continuerò a codificarli per sicurezza. Dal momento che la maggior parte dei client di posta elettronica consente immagini, nulla impedisce a qualcuno che usa un tag img di dire ... ottenere l'indirizzo IP di qualcuno.

+0

I tag HTML come le immagini sono ancora efficaci solo se si includono intenzionalmente intestazioni MIME per dire che la posta è HTML. Fortunatamente, a differenza di IE, i mailer non eseguono il sniffing dei contenuti. – bobince

Problemi correlati