Consideraciones a tener en cuenta para ampliar la seguridad de tu formulario web

¿Cómo funciona esta modalidad?

 

Para explicarlo vamos a basarnos en un ejemplo simple, supongamos que nuestro formulario dispone de un campo para el ingreso del e-mail por parte del visitante de la siguiente forma:

input name="email" value="Ingrese" su="" e-mail="" aqui="" type="text"

Luego, la dirección ingresada en este campo es enviada al servidor y es tomada por el script PHP para ser utilizada como FROM en la función mail() y de esta manera el mensaje que nos llega a nuestro correo tendrá como remitente la dirección ingresada por el visitante.

Ahora bien, la función mail() de PHP: mail(recipiente, asunto, mensaje, cabeceras extras); simplemente concatena los parámetros que le son pasados, por lo cual, si en el campo mail del formulario ingresamos lo siguiente:

spammer@anonimo.com%0ACc:email@victima1.com%0ABcc:email@victima2.com,

email@victima3.com

donde la primera dirección será el From: (dirección de origen que llegará a las víctimas del spam), %0A es el valor hexadecimal del caracter de salto de línea , Cc: (Copia) contiene la dirección o direcciones de las víctimas y Bcc: (Copia Oculta) contiene también direcciones de las víctimas del spam.

Parte de la cabecera del e-mail generado por nuestro formulario abusado  será:

To: recipient@midominio.com
Subject: Asunto del mensaje
From: spammer@anonimo.com
Cc: email@victima1.com
Bcc: email@victima2.com, email@victima3.com

Con esto, el spammer habrá utilizado nuestro sitio para el envío de correo masivo a través de nuestro formulario.

El ejemplo visto es el caso más básico de esta modalidad ya que a través de la inyección de cabeceras se puede incluso modificar el asunto y hasta el mensaje en si mismo, hasta el punto de poder enviar mensajes con contenido html.

 

¿Qué consecuencias tiene esta modalidad?

 

En primer lugar, nuestro formulario está siendo usado para llevar a cabo una actividad con la cual la gran mayoría de nosotros estamos en desacuerdo.

También se está haciendo uso del ancho de banda disponible para el servidor, afectando al resto de los sitios alojados en el mismo, por lo cual el sitio en cuestión será suspendido hasta que el inconveniente sea resuelto.

Por último, ante una denuncia de spam, dicha cuenta deberá ser suspendida de acuerdo a lo previsto en legales de nuestro sitio. Es responsabilidad de cada usuario el utilizar código lo suficientemente seguro en su sitio web y corregir esto si fuera necesario.

 

¿Cómo evitar la utilización de nuestro formulario?

 

Ante todo, cabe aclarar que la modalidad ejemplificada se da únicamente en formularios que utilizan la función mail() de PHP para procesar y enviar los datos ingresados por el visitante. Se recomienda siempre utilizar la clase phpmailer que evita en gran medida estos problemas.

Si utilizás algún script de PHP que no sea de tu autoría, como formail.php, por favor, actualizá el mismo con la versión más reciente verficando que brinde una solución a este tipo de actividad.

Si utilizás un script PHP de tu propiedad o poseés los conocimientos como para editar el mismo, aquí incorporamos una función que podés utilizar para validar los datos ingresados de forma eficiente

function ValidarDatos(){
// Array con las posibles cabeceras a utilizar por un spammer
= array(Content-Type:,
MIME-Version:,
Content-Transfer-Encoding:,
Return-path:,
Subject:,
From:,
Envelope-to:,
To:,
bcc:,
cc:);

// Comprobamos que entre los datos no se encuentre alguna de
// las cadenas del array. Si se encuentra alguna cadena se
// dirige a una pagina de Forbidden
foreach ( as ) {
if (strpos (strtolower (), strtolower () ) !== false) {
header (HTTP/1.0 403 Forbidden);
exit;
}
}
}

// Ejemplo de llamadas a la funcion
ValidarDatos(['email']);
ValidarDatos(['asunto']);
ValidarDatos(['mensaje']);
?>

Esta función es básica y puede ser modificada de acuerdo al script que utilices para el procesamiento del formulario e incluso incorporar control de errores. No olvides incluir los campos ocultos del formulario si estos datos van a ser pasado a través de la función mail().

Además te sugerimos para aumentar la seguridad en tus formularios y que estos no sean tomados por terceros, puedes utilizar un captcha para el mismo.

  • Email, SSL
  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

Virus en la web. Auxilio!!! Que son y como los eliminamos

Ultimamente, se incrementaron notablemente los casos de sitios web que son infectados por virus o...

Ip bloqueada en el servidor: Como desbloquear una ip bloqueada en el firewall del servidor

Importante: Servicio exclusivo para clientes con servicios de hosting o servidores activos....

Bloquear Ip por htaccess

A traves del archivo htaccess puede bloquear IP´s, o todas las IP´s que ingresan a su...

Comprimir con GZIP su sitio web

Puede hacer por PHP pero lo ideal es hacerlo directamente desde un archivo .htaccess en la raíz...

Forzar http a https con htaccess

Para forzar todo su trafico hacia HTTPS agregue las siguientes lineas de codigo dentro de su...