Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Base de conocimiento
Evitar que un formulario de contacto (formmail.pl u otro) se utilice paraenviar spam
Evitar que un formulario de contacto (formmail.pl u otro) se utilice paraenviar spam
Acciones a realizar
De todos modos, nosotros actuamos al final de la cadena: filtramos los saltos de línea presentes en las cabeceras pasadas a la función mail() de PHP. Pero usted debe
- proteger sus scripts de envío de correo mediante un sistema de CAPTCHA o estableciendo una restricción explícita en los destinatarios
- al enviar correos a través del comando mail() de PHP, asegurarse de que los argumentos proporcionados han sido validados antes de su utilización. Los valores recibidos de un formulario deben ser verificados antes de su utilización por la función mail().
- reemplazar los posibles saltos de línea en cada uno de los campos que normalmente deben contener un correo electrónico (este campo se suele denominar $correo electrónico, $sender o $from):
$EMAIL = str_replace("\n","", str_replace("\r", "", $EMAIL));
Más información
Los spammers se aprovechan de los scripts parecidos a este:
$MESSAGE = $_POST[msg];
$RECIPIENT ="webmaster@sudominio.com";
$SUBJECT = "Formulario de contacto";
$EMAIL = $_POST[email];
// ¡¡¡Sin esta línea su script esvulnerable!!!
$EMAIL = str_replace("\n", "", str_replace("\r","", $EMAIL));
mail($RECIPIENT, $SUBJECT, $MESSAGE, "From:$EMAIL");
Enlace a esta FAQ: