Какие экранирование или очистка необходимы для темы электронной почты? - PullRequest
2 голосов
/ 10 февраля 2009

Такие сайты, как Facebook, содержат имя пользователя в строке темы, которая отправила вам сообщение.

В связи с этим, что бы вы могли избежать при вводе пользователем значений в теме сообщения? Или вы просто не допустите ничего, кроме a-z, 0-9, точки, запятой и одинарных кавычек?

Ответы [ 3 ]

1 голос
/ 10 февраля 2009

Та же проблема с контактными формами.

Если вы посмотрите на заголовок письма, вы получите, например, это:

Subject: user123 has sent you an invite
From: "User123" <user123@example.org>

Вы должны убедиться, что имена пользователей не соответствуют значениям заголовка электронного письма. Если пользователь может назвать себя «Кому: spamreceiver1@example.org, spamreceiver2@example.org, spamreceiver3@example.org, spamreceiver4@example.org», вы должны очистить ввод.

Поиск «контактная форма спама» должен показать вам, что делать. Вы должны по крайней мере удалить все вхождения «To:», «Subject:», «From:» и т. Д.

1 голос
/ 10 февраля 2009

Вы должны быть осторожны с заголовками писем, 8-битные символы - это немного нет. (почтовые серверы их отклонят).

Правильный способ сделать это - MIME-кодировать ваши строки темы и убедиться, что ASCII-символ \ n не находится в строке темы (технически возможны многострочные темы, но я думаю, что многие почтовые клиенты проблемы)

Подробнее см. http://en.wikipedia.org/wiki/MIME#Encoded-Word.

1 голос
/ 10 февраля 2009

Побег необходим, если есть запрещенные персонажи. Тема заканчивается символом NL, так что это единственный (ASCII) символ, который не должен быть помещен в заголовок.

См. Также rfc821

...