Нужно ли экранировать символы при отправке электронных писем?

StackOverflow https://stackoverflow.com/questions/1412417

  •  05-07-2019
  •  | 
  •  

Вопрос

Я использую контактную форму Django на веб-сайте, чтобы позволить посетителям отправлять электронные письма.

В настоящее время это экранирующие символы, поэтому одинарные и двойные кавычки преобразуются в & amp; # 39; и & amp; quot; соответственно. Письма были бы более читабельными, если бы кавычки отображались как ' и " .

Я понимаю, почему я никогда не должен размещать неэкранированные данные от посетителей на своих веб-страницах из-за риска xss. Есть ли такой же риск с электронными письмами, или это нормально, чтобы отправлять входные данные посетителя без экранирования?

Это было полезно?

Решение

Если это письма электронной почты в формате HTML, вы не возражаете против побега, так что я предполагаю, что это обычный текст? В этом случае вы хотите отключить цитирование. Вы можете обернуть тело вашего шаблона в

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

чтобы оставить своих персонажей в покое.

Другие советы

Я бы все еще зашифровал их, чтобы быть в безопасности. Поскольку большинство почтовых клиентов допускают изображения, ничто не мешает кому-то использовать в сообщении тег img , чтобы сказать ... получить чей-либо IP-адрес.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top