Фильтрация пользовательского ввода перед отправкой по электронной почте - PullRequest
0 голосов
/ 10 февраля 2012

Я создаю простую форму обратной связи на PHP: пользователь может просто ввести некоторые комментарии / предложения и т. Д. О моем сайте и нажать «Отправить отзыв». Затем введенный им текст отправляется непосредственно в текст сообщения электронной почты (т.е. я сам задаю адрес получателя, ввод пользователя используется только в теле письма).

Теперь я не уверен, какие атаки возможны, если я просто возьму нефильтрованный текст и вставлю его в тело письма.

В настоящее время я работаю с платформой Joomla (т.е. я использую функциональность JMail Joomla), но я думаю, что вопрос более общий: существует много информации о внедрении SQL и межсайтовых скриптах (которые являются эквивалентными векторами атаки), но я почти ничего не нашел об электронных письмах.

Обратите внимание, что в моем случае текст только отправляется по электронной почте, поэтому меня не волнует SQL-инъекция или межсайтовый скриптинг (электронное письмо отправляется в виде простого текста). Так какой тип фильтрации я должен применить?

Спасибо Martin

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Самым важным будет защита от спама.

Если вы отправляете электронную почту в формате HTML, вам следует отфильтровать теги (strip_tags или htmlspecialchars) или проверить HTML пользователя (HTMLPurifier http://htmlpurifier.org/)

).

Ограничение длины сообщения также может быть полезным.

0 голосов
/ 10 февраля 2012

Поскольку вы ожидаете только комментариев и предложений, вы можете просто удалить любые символы, кроме букв алфавита, цифр и ".", ",". Даже если он удалит других персонажей, это не будет иметь для вас значения, вы узнаете, что они значат. «=» - самый большой враг. Но набор, который я описал, должен держать вас в безопасности.

...