Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/08/2010, 21:29
martinferra
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 8 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
  1. <?
  2.     $youremail = "[email protected]"; //YOUR MAIL HERE
  3.     $subject = "el título del tema "; // TITLE OF DE SUBJECT IN MAIL
  4.     $redirect = "contacto.php";//URL TO BE REDIRECTED IN 5 SECONDS
  5.     $secs = "10";// TIME TO BE REDIRECTED
  6.  
  7. if(eregi("MIME-Version:",$postVars)) {
  8. mail("[email protected]"/*YOUR MAIL HERE*/, "Form Hijack Attempt", "A spam relay was attempted from the Web site and was blocked.", "From:SpamMonitor");
  9. die();
  10. } //BLOCKING spam
  11.  
  12.  
  13.  $secret = 'ssshhitsasecret';  
  14.     $token = md5(rand(1, 1000).$secret);
  15.     $_SESSION['token'] = $token;
  16.     ?>
  17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  18. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  19. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" >
  20. <head>
  21. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
  22. <title>ejemplo de procesador de formulario web seguro antispam con captcha quinti.net</title>  
  23. <meta http-equiv="refresh" content="<?=$secs;?>;URL=<?=$redirect;?>" />
  24.  </head>
  25.         <body>
  26. <?
  27.   //a partir de aquí hay una serie de variables que impiden que los spammers usen nuestro formulario como lanzadera de su spam
  28.   $name = stripslashes($name);
  29.   $message = stripslashes($message);
  30.   //$headers = "From: [email protected] \r\n";
  31.     //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
  32.  ini_set("sendmail_from","[email protected]");  
  33. mail("$youremail", "$subject","
  34.    Name: $name
  35.    Email: $email
  36.    Subject: $phone
  37.    Message: $message
  38.    IP: $ip
  39.    Browser Info: $httpagent
  40.    Referral : $httpref
  41.    Date : $date
  42. ");
  43.    // Strip \r and \n from the email address
  44.    $_POST['email'] = str_replace("\r", "", $_POST['email']);
  45.    $_POST['email'] = str_replace("\n", "", $_POST['email']);
  46.  
  47. //*****COMMENT: if you have problems with the lines 40/41, replace these for:
  48. //$_POST['email'] = preg_replace("\r", "", $_POST['email']);
  49. //$_POST['email'] = preg_replace("\n", "", $_POST['email']);//*****
  50. //$_POST['email'] = str_replace("\r", "", $_POST['email']);
  51. //$_POST['email'] = str_replace("\n", "", $_POST['email']);//*****
  52.  
  53.    $_SESSION['token'] = $token;
  54.    $token = md5(rand(1, 1000).$secret);
  55.    $secret = 'ssshhitsasecret';
  56.    $field = preg_replace( "/[\n\r]+/", " ", $field );
  57.     // Remove injected headers
  58.     $find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i");
  59.     $_POST['email'] = preg_replace($find, "", $_POST['email']);
  60.     $message = preg_replace($find, "", message);
  61.     $email=str_replace("\r","\n",$email);
  62.     $name=str_replace("\r","\n",$name);
  63.     $message=str_replace("\r","\n",$message);
  64.     $phone=str_replace("\r","\n",$phone);
  65.    
  66.    
  67. if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
  68. mail("$youremail", "Message Killed", "$message", "From: $name <$email>");
  69. exit("Message killed.");
  70. }
  71.  if (eregi('^(bcc$|content-type|mime-version|--)',$key))
  72. print_error("Field names indicate exploit.");  //BLOCKING SPAM
  73.  
  74. ?>
  75.  <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>
  76.  
  77.  
  78.         </body>
  79.         </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.