23/08/2010, 21:29
|
| | Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Respuesta: Formulario atacado por Spammer en sitio alojado en Dattatec ....continúa acá: Desde Dattatec, modificaron el gracias.php, y, digamos que funciona. La cuestión es que lo han configurado para que los msjs del formulario los envíe desde '[email protected]' (como remitente) a '[email protected]'.
La forma correcta sería que el Remitente de cada mail recibido, sea el mail ingresado, en cada caso, en el campo 'email' del formulario. Gracias.php modificado por Dattatec en las líneas 31, 32 y 33
Código PHP:
Ver original<? $subject = "el título del tema "; // TITLE OF DE SUBJECT IN MAIL $redirect = "contacto.php";//URL TO BE REDIRECTED IN 5 SECONDS $secs = "10";// TIME TO BE REDIRECTED if(eregi("MIME-Version:",$postVars)) { mail("[email protected]"/*YOUR MAIL HERE*/, "Form Hijack Attempt", "A spam relay was attempted from the Web site and was blocked.", "From:SpamMonitor"); } //BLOCKING spam $secret = 'ssshhitsasecret'; $token = md5(rand(1, 1000).$secret); $_SESSION['token'] = $token; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" > <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> <title>ejemplo de procesador de formulario web seguro antispam con captcha quinti.net</title> <meta http-equiv="refresh" content="<?=$secs;?>;URL=<?=$redirect;?>" /> </head> <body> <? //a partir de aquí hay una serie de variables que impiden que los spammers usen nuestro formulario como lanzadera de su spam //This is where the email is sent using your values from above. Be sure to update this if you change any fields in contact.php mail("$youremail", "$subject"," Name: $name Email: $email Subject: $phone Message: $message IP: $ip Browser Info: $httpagent Referral : $httpref Date : $date "); // Strip \r and \n from the email address $_POST['email'] = str_replace("\r", "", $_POST['email']); $_POST['email'] = str_replace("\n", "", $_POST['email']); //*****COMMENT: if you have problems with the lines 40/41, replace these for: //$_POST['email'] = preg_replace("\r", "", $_POST['email']); //$_POST['email'] = preg_replace("\n", "", $_POST['email']);//***** //$_POST['email'] = str_replace("\r", "", $_POST['email']); //$_POST['email'] = str_replace("\n", "", $_POST['email']);//***** $_SESSION['token'] = $token; $token = md5(rand(1, 1000).$secret); $secret = 'ssshhitsasecret'; // Remove injected headers $find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i"); if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) { mail("$youremail", "Message Killed", "$message", "From: $name <$email>"); } if (eregi('^(bcc$|content-type|mime-version|--)',$key)) print_error("Field names indicate exploit."); //BLOCKING SPAM ?> <p>Gracias, el formulario se ha enviado con éxito, le contestaremos en menos de 24 h. En 5 segundos será redirigido a la página principal.</p> </body> </html>
La idea de todo esto es que el formulario (con captcha, o con cualquier método de seguridad) vuelva a funcionar normalmente, cómo funcionaba el formulario choto que tenía antes de que apareciera este problema.
No tengo experiencia con estos spammers. No se si en un tiempo pueden desactivarse, ...no se si tengo que eliminar la casilla (ya probe cambiando las casillas del form, y salta lo mismo), ...cambiarme a un hosting que me de garantía de que esto no vaya a suceder, ....uds. dirán.
Espero buenos consejos.
Gracias de antemano. |