Отправка email с сайта

почтовый адрес

Для сокрытия адреса почтового ящика от спамеров часто используются форму обратной связи, информация из которой поступает серверному скрипту, который уже сам отправляет почту адресату по известному только скрипту адресу, к примеру, php-функцией mail.

Функция mail позволяет отправлять письмо, указывая ему дополнительные заголовки, в которых можно прописать, в частности, адрес отправителя. В самом деле, почему бы не спросить у отправителя его почтовый адрес, чтобы ему в случае чего сразу отправить ответ через "Reply".

Итак, ловим данные и передаем их в функцию mail (обратный адрес из формы в переменной $sender_email):
mail ($admin_email, 'Письмо с сайта', $message, "From: ".$sender_email);

В чем тут проблема: дело в том, что последний аргумент функции mail представляет собой разделенные символами перевода строки заголовки. Нам кажется, что заголовок один — "From". Но представим, что хакер написал в качестве обратного адреса такой набор символов:
hacker@site.com
Cc: email@domain.com

Пусть вас не смущает, что данные введены в 2 строки, а в форме отправки для email было однострочное поле, не дающее писать текст в несколько строк. Как уже упоминалось во введении, все данные, поступающие снаружи, можно подделать. Так что данное письмо будет отправлено не только нам, но и на те email-адреса, который хакер укажет в "Cc:" или "Bcc:" (а он их там может указать сотню). И вот получите ситуацию — через нас рассылают спам.

Решение очевидно — запрещать отправку писем, если во введенном email-адресе используются символы перевода строки (n и r).


Источник: http://www.captcha.ru

Рекомендуем



CSRF: совершение действия от имени пользователя Дело тут, правда, такое, что от пользователей можно и требовать обязательного включения передачи Referer, тем более что часто на этом базируется защита от размещения ссылок на ваш контент на чужих сайтах


Отключение кук (cookie) Дело в том, что часто cookie используют для хранения идентификатора сессии, который должен передаваться серверу при каждом обращении, чтобы у пользователя не обнулялась корзина, чтобы ему не приходилось вводить логин-пароль после каждого клика по ссылке и т


XSS и UTF-7 Отдельно стоит упомянуть использование для XSS-атаки скриптов, написанных в кодировке UTF-7