Buen día.
Mi provedor de hosting sugiere que añadamos una función cada que vayamos a usar la función mail() de php:
Vulnerabilidad de la función mail de php
Entonces, uso el siguiente código:
Código PHP:
Ver originalif (isset($_POST["mensaje"])){
function ValidarDatos($campo){
//Array con las posibles cabeceras a utilizar por un spammer
$badHeads = array("Content-Type:", "MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:");
foreach($badHeads as $valor){
echo '<p style="text-align:center;">Se ha introducido una cadena que contiene cabeceras php sospechosas:</p>';
echo '<div style="background:#000; margin:10px 40px; color:#eee; padding:5px; border:#553355 1px solid; font-family:Courier New, Courier, monospace;">';
echo '</div>';
echo '<p style="text-align:center;">Favor de revisar nuevamente o intentar manualmente. Gracias.</p>';
}
}
}
echo '<div style="text-align:center;">';
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$telefono = $_POST["telefono"];
$mensaje = $_POST["mensaje"];
if (!(empty($mensaje))) {
ValidarDatos($nombre);
ValidarDatos($email);
ValidarDatos($telefono);
ValidarDatos($mensaje);
$body = 'Nombre: '.$nombre."\r\n\r\n".'Telefono: '.$telefono."\r\n\r\n".'Email: '.$email."\r\n\r\n\r\n\r\n".'Mensaje: '."\r\n\r\n".$mensaje;
echo '<p>Su mensaje se ha enviado correctamente.</p><p class="txt-bld">En breve nos comunicaremos con usted.</p>';
}else{
echo '<p>Ocurrió un error durante el envío. Trate manualmente:</p><p class="txt-bld">[email protected]</p><p>Disculpe las molestias.</p>';
}
}else{echo '<p class="txt-bld">Inserte un mensaje. Gracias.</p><p><a href="contacto.php">Reintentar</a>.</p>'; }
}else{echo '<p class="txt-bld">Inserte una dirección email válida. Gracias.</p><p><a href="contacto.php">Reintentar</a>.</p>';}
echo '</div>';
}else{
El problema es que algunos me cuentan que me han querido escribir un mensaje y se los regresa. Y vale... que las palabras prohibidas como "From:" "To:" o "Subject:" pueden ser utilizadas en un mensaje común.
Mi pregunta es... ¿es realmente necesario? ¿cuál pudiera ser una alternativa?
Muchas gracias por su tiempo. Saludos.