Я чувствую себя немного неловко, потому что я генерирую тело письма с помощью PHP без экранирования переменных. В HTML я использую htmlspecialchars() или аналогичные функции для командных строк escapeshellarg(), но для почты? Например что-то вроде этого:
<?php
$usercontent = $_GET['usercontent'];
mail("[email protected]", "My Subject", "My body with $usercontent included");
?>
Что может сделать возможный злоумышленник с помощью сценария, подобного приведенному выше, и как я могу защититься от такой атаки? Или PHP mail() сохраняется и почему?
Обновить
Пожалуйста, обратитесь к примеру:
- Затрагивается только тело (без заголовков!)
- Content-Type — текстовый/обычный
- Некоторые доказательства ответа было бы неплохо
- MTA — это postfix sendmail с "/usr/sbin/sendmail -t -i"