внедрение заголовка письма - пример не работает - PullRequest
2 голосов
/ 22 ноября 2011

Прежде всего, этот вопрос для личного знания, а не для какой-либо атаки :) надеюсь, вы мне поверите и дадите несколько советов.

Я пытаюсь воспроизвести пример почтыВнедрение заголовка, которое я нашел (link-> http://www.phpsecure.info/v2/article/MailHeadersInject.en.php). В основном он использует форму для получения 3 параметров (тема, сообщение и почта отправителя), затем эти параметры отправляются методом POST и используются в функции php mail () дляпочта администратора.

Все отлично работает, каждое письмо отправляется без проблем, но когда я пытаюсь ввести некоторые другие параметры, такие как Cc, Bcc и т. д., трюк не работает: ни \r & \n, ни%0A & %0D интерпретируются как CL и RF. Например, если я введу my@mail.com%0ACc:foo@bar.com в поле «От», в папке «my@mail.com» я найду почту с тем же «Из поля "как оно было отправлено" (my@mail.com%0ACc:foo@bar.com). Является ли php или кодировщик ввода правильно (или не кодирует) ввод? Как я могу заставить его работать?

Надеюсь, вы понимаете мой плохой английский, спасибозаранее, с наилучшими пожеланиями.

PS: арссылка, которую я связал, датирована 2005 годом, недавно я обнаружил, что аналогичная ошибка с разделением заголовков http с помощью функции php "header ()" была исправлена, поэтому я подумал, что они также исправили проблему с внедрением заголовков электронной почты .. Но я не могу найтичто-нибудь в Интернете, подтверждающее это.

______________________ РЕДАКТИРОВАТЬ ________________________________________

Пример работы, изменение заголовка в коде php:

$to = "admin@mail.com";
$sub = "this is the subject";
$msg = "this is the message";
$header = "From: foo@foo.com"."\r\n"."Cc: bar@bar.com";
$if(mail($to, $sub, $msg, $header."\n")){
    echo "sent";
}else{
    echo "error";
}

Письмо правильно получено как от foo @ foo.com и bar@bar.com

Примеры НЕ работают (эту проблему я хотел бы решить с вашей помощью): First example not working

Second example not working

Как только я отправлю письмо с помощью кнопки «отправить», электронное письмо получит только foo@foo.com, а в деталях «от» (внутри письма) я найду (1-й случай) foo@foo.comrnCc: bar@bar.com или (2-й)случай) foo@foo.com%0D%0ACc: bar@bar.com.

1 Ответ

1 голос
/ 22 ноября 2011

Я всегда нахожу, что мне нужно использовать оба \ r \ n для правильной отправки заголовков.

...