"PHP" / Говнокод #11935 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
function send_attach(
 $to, //!< Email получателя
 $from, //!< Email отправителя
 $task, //!< Тема письма
 $text //!< Текст письма
 ) {
 
 $boundary = "--".md5(uniqid(time())); // генерируем разделитель
 $subject= $task." [".stripslashes($_SERVER['HTTP_HOST'])."]";
 $subject ='=?windows-1251?B?'.base64_encode($subject).'?=';
 $headers = "To: ".$to."\r\n";
 $headers="From: =?windows-1251?B?".base64_encode(stripslashes($_SERVER['HTTP_HOST']))."?= <".$from.">\r\n";
 $headers .= "MIME-Version: 1.0\n";
 $headers .= "Content-Type: multipart/mixed; boundary=\""
 .$boundary."\"\r\n";
 $headers .= "--".$boundary."\r\n";
 $headers .= "Content-type: text/html; charset=windows-1251 \r\n";
 $headers.="Subject: ".$subject."\r\n";
 $headers.="X-Mailer: PHP/".phpversion()."\r\n";
 $headers .= "Content-Transfer-Encoding: Quot-Printed\r\n\r\n";
 $headers .= '<html><head><title>Заявка с сайта</title></head>';
 $headers .= '<body>'.$text.'</body></html>';
 //.'<img src=\'24.jpg\' alt="img">
 $message_part = "";
 
 if(
 isset($_FILES['f_file']['tmp_name']) and
 is_array($_FILES['f_file']['tmp_name'])
 ) {
 foreach($_FILES['f_file']['name'] as $k => $v) {
 if (trim($v) != '') {
 
 $fname = $_FILES['f_file']['tmp_name'][$k];
 $fp = fopen($fname,"r");
 $file = fread($fp, $_FILES['f_file']['size'][$k]);
 fclose($fp);
 
 $message_part .= "--$boundary\r\n";
 $message_part .= "Content-Type: application/octet-stream\r\n";
 $message_part .= "Content-Transfer-Encoding: base64\r\n";
 $message_part .= "Content-Disposition: attachment; filename = \""
 .$_FILES['f_file']['name'][$k]."\"\r\n\r\n";
 $message_part .= chunk_split(base64_encode($file))."\r\n";
 
 }
 }
 }
 $message_part .= "--".$boundary."--\n";
 
 
 return mail($to, $subject, $message_part, $headers);

 }

Функция отправки письма с сайта. Технически - вроде работает. А так, вполне себе "обфускация" получилась.

Запостил: Lblss Lblss, (Updated )

Комментарии (5) RSS

    • Не только не гибко, но и совершенно нетестируемо ($_FILES, $_SERVER, mail()). Нет чтобы использовать Swiftmailer или еще что-нибудь. Велосипедисты повсюду!
      Ответить
    • $headers .= "Content-Transfer-Encoding: Quot-Printed\r\n\r\n";
      $headers .= '<html><head><title>Заявка с сайта</title></head>'

      А 8битные символы в номинально 7битном потоке?
      Ответить
      • Вынос мозга это. Первая строка цитируемого кода - еще хидеры, а вторая - уже совсем не хидеры, хотя, пихается туда же, в переменную $headers. Все смешалось в голове автора.
        Ответить
  • И не лень была кому-то в этом разбираться. Хотя, можно же сниффнуть/сохранить/добыть из отправленных local mailbox письмо в raw-формате и просто заменить данные своими.
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8