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 original
function ValidarDatos($campo){ //Array con las posibles cabeceras a utilizar por un spammer "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>'; exit; } } } echo '<div style="text-align:center;">'; $nombre = $_POST["nombre"]; $email = $_POST["email"]; $telefono = $_POST["telefono"]; $mensaje = $_POST["mensaje"]; ValidarDatos($nombre); ValidarDatos($email); ValidarDatos($telefono); ValidarDatos($mensaje); $header = 'From: [email protected]' . "\r\n".'Reply-To:' .$email. "\r\n" .'X-Mailer: PHP/' . phpversion(); $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.