2009-09-11 16 views
5

Używam strony internetowej Django Contact Form, aby umożliwić odwiedzającym wysyłanie wiadomości e-mail.Czy muszę unikać znaków podczas wysyłania e-maili?

Obecnie jest to znak znikający, dlatego pojedyncze i podwójne cudzysłowy są przekształcane odpowiednio w ' i ". Wiadomości e-mail będą bardziej czytelne, jeśli cudzysłowy były wyświetlane jako ' i ".

Rozumiem, dlaczego nigdy nie powinienem umieszczać informacji o użytkownikach na swoich stronach internetowych ze względu na ryzyko związane z xss. Czy istnieje takie samo ryzyko w przypadku e-maili, czy też można przesłać dane wejściowe odwiedzającego bez znaku?

Odpowiedz

4

Jeśli są to wiadomości e-mail w formacie HTML, to nie miałbyś nic przeciwko ucieczce, więc zakładam, że są to zwykły tekst? W takim przypadku chcesz wyłączyć cytowanie. Możesz zawijać treść szablonu w celu pozostawienia swoich znaków w spokoju.

+0

Tak, są to zwykłe wiadomości tekstowe. Myślę, że byłem nadmiernie paranoiczny, martwiąc się, że czytnik e-mail będzie analizować zwykły tekst jako html. – Alasdair

+0

Nie musisz być paranoikiem, ponieważ twój e-mail będzie w formacie zwykłego tekstu, więc klienci "powinni" interpretować go jako zwykły tekst i nie zauważać tagów. – Humphrey

+0

Nie można przekształcić zwykłego tekstu e-mail w e-mail HTML tylko poprzez włączenie HTML w treści. Nagłówek 'Content-Type: text/html' mówi klientowi, że jest to HTML, natomiast' Content-Type: text/plain' jest przeznaczony do wiadomości tekstowych. Jeśli nie ma nagłówka, przyjmuje się domyślną wartość zwykłego tekstu. –

0

Nadal będę je kodować, aby były bezpieczne. Ponieważ większość klientów poczty e-mail zezwala na obrazy, nie ma nic, aby powstrzymać kogoś przy użyciu znacznika img w e-mailu, aby powiedzieć ... uzyskać adres IP kogoś.

+0

Znaczniki HTML, takie jak obrazy, są nadal skuteczne tylko wtedy, gdy celowo dodajesz nagłówki MIME, aby powiedzieć, że poczta to HTML. Na szczęście, w odróżnieniu od IE, programy pocztowe nie zajmują się treścią. – bobince