función mail() permite....

Miguel MS arjwinzip en gmail.com
Mar Sep 13 16:33:19 CLT 2005


Hola.
En un sitio del que soy webmaster hace unos días nos están llegando
correos (unos 15 diarios) enviados de nuestro formulario de contacto,
que usa la función mail() de php.

El problema es que estos emails siguen un formato completamente
distinto al configurado, ya que añaden letras al asunto, e incluyen en
el cuerpo cosas como:

Content-Type: multipart/mixed; boundary=\"===============0600614357==\"
MIME-Version: 1.0
Subject: 8309cbbd
To: uaw@[misitio].cl
bcc: jrubin3546 en aol.com
From: uaw@[misitio].cl

This is a multi-part message in MIME format.

--===============0600614357==
Content-Type: text/plain; charset=\"us-ascii\"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

zrteh
--===============0600614357==--


Es decir, insertan código al formulario. 

Yo supongo que están atacando mediante algún script o exploit, ya que
los mails deberían indicar desde qué navegador se enviaron con:

$cuerpo .= "Navegador: ". getenv"HTTP_USER_AGENT")."\n";

pero en este tipo de email no llegan esos datos.

Por ahí leí que la función mail() de php es vulnerable a inyección de
contenido MIME, pero no encuentro cómo evitar esto.

Lo que uso para seguridad en los campos de envíos es "strip_tags", como en:

$cuerpo .= "Nombre: " . strip_tags($HTTP_POST_VARS["nombre"]) . "\n"; 

pero eso sólo filtra el contenido html.

Alguien sabe cómo evitar esto????'
La función mail la uso de la siguiente forma:
mail("arjwinzip en gmail.com,[misitio]@[misitio.cl]","Formulario
[misitio]",$cuerpo,"From: $correo"))
 {

Gracias,
Miguel.



Más información sobre la lista de distribución PHP