Кодирование ввода пользователя для электронной почты - PullRequest
1 голос
/ 22 сентября 2008

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

Ответы [ 5 ]

1 голос
/ 22 сентября 2008

Хотя было бы неплохо удалить теги <script> из документа перед отправкой, я думаю, что угроза мала. Я полагаю, что вам будет трудно найти почтовый клиент (все еще получающий поддержку), который не удаляет сценарии перед отображением электронной почты.

0 голосов
/ 22 сентября 2008

Я бы настоятельно рекомендовал использовать существующее, проверенное решение для отправки писем. Если вы передаете пользовательский ввод, скажем, функции PHP mail () - даже с кодировкой HTML - злоумышленник может создать «тело», которое на самом деле содержит заголовки, для создания сообщения, состоящего из нескольких частей.

0 голосов
/ 22 сентября 2008

Вы должны определенно кодировать HTML, прежде чем присваивать размещенное содержимое в теле HTML письма. Ваш код уже должен отклонять контент, такой как '', как недействительный, не только в случае электронной почты, но и во всех случаях.

Вам не о чем беспокоиться.

0 голосов
/ 22 сентября 2008

Вы должны использовать библиотеку SMTP, которая берет на себя любую нагрузку (и потенциальные ошибки), которые вызваны дублированием или отсутствием экранирования. Затем используйте только текстовые письма (текстовые / простые).

Чтобы избежать проблем безопасности с ошибочными почтовыми клиентами, вы также можете отправить почти пустое письмо и текст в виде вложения (расширение файла ".txt", тип содержимого "text / plain").

0 голосов
/ 22 сентября 2008

Я считаю, что, помечая тело письма как текст / обычный текст, можно было бы избежать атак javascript и / или html (но я бы не стал доверять прогнозам следования советам заголовков).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...