Ver Mensaje Individual
  #19 (permalink)  
Antiguo 31/08/2013, 16:21
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mi web es atacada con todo y ya no se que hacer

Pero una cosita esta funcion

function limpiar_tags($tags){
$tags = strip_tags($tags);
$tags = stripslashes($tags);
$tags = htmlentities($tags);
return $tags;
}

es mas para prevenir que inyecten codigo malicioso etiquetas javascript etc .. . retira etiquetas , convierte caracteres etc... pero no te salva de publicidad
si te insertan publicidad sin ningun tipo de codigo este se te guardara igualmente para eso tienes que poner un filtro antispam por ejemplo algo sencillo

Código PHP:
Ver original
  1. function limpiar_tags($tags){
  2.  
  3. $tags = strip_tags($tags);
  4. $tags = stripslashes($tags);
  5. $tags = htmlentities($tags);
  6. return $tags;
  7.  
  8. }
  9.  
  10.  
  11. function antispam($var){
  12.      
  13.      
  14.             $palabras = array(
  15.          
  16.             '1' => 'Gratis',
  17.             '2' => 'Gane' ,
  18.             '3' => 'dinero',
  19.             '4' => 'Ahorre',
  20.             '5' => 'ventas',
  21.             '6' => 'Sexo',
  22.             '7' => 'Promocion',
  23.             '8' => 'cobro',
  24.             '9' => 'Compre',
  25.             '10' => 'llame',
  26.             '11' => 'Viagra'
  27.          
  28.         );
  29.          
  30.         foreach ($palabras as $val )
  31.         {
  32.      
  33.         if(stristr(strtolower($var), $val) !== false)
  34.         {
  35.             return true;
  36.         }
  37.          
  38.         }
  39.          
  40.         return false;
  41.          
  42.         }
  43.          
  44.      
  45.          // buscaremos en cualquier variable que queramos si existe alguna palabra de la lista
  46.      
  47.          // verificamos usando la funcion y limpiamos los datos $_POST, todos.
  48.  
  49.         $mensaje = limpiar_tags($_POST['mensaje']);
  50.  
  51.         $author= limpiar_tags($_POST['author']);
  52.      
  53.         if( antispam($mensaje) !== true and antispam($author) !== true)
  54.         {
  55.  
  56.         // el comentario paso el flitro procedemos a guardarlo en la bd con la variable $mensaje, $author etc...... no uses los datos $_POST
  57.  
  58.         }
  59.         else
  60.         {
  61.  
  62.         // se detecto spam por lo cual no guardamos el mensaje
  63.         // redireccionamos por ejemplo
  64.         // header('location:index.php');
  65.  
  66.         exit('comentario calificado como spam');
  67.  
  68.         }

segun vayas detectando anuncios que pasen el filtro , añades palabras de dicho anuncio a la lista y asi detectas mas spam aun.

espero que te sirva.

Última edición por webankenovi; 31/08/2013 a las 16:39