Ver Mensaje Individual
  #21 (permalink)  
Antiguo 02/09/2013, 08:56
Avatar de tquezada
tquezada
 
Fecha de Ingreso: febrero-2013
Ubicación: Santiago
Mensajes: 196
Antigüedad: 11 años, 3 meses
Puntos: 8
Respuesta: Mi web es atacada con todo y ya no se que hacer

Cita:
Iniciado por webankenovi Ver Mensaje
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.
excelente la función +1
Pero revise tu pagina y creo que tu mismo deberías agregar palabras y en ingles ya que veo que la mayoría de la publicidad esta en ingles
Saludos y suerte
__________________
¿Sabes cuántos programadores hacen falta para cambiar una bombilla? - no, no ¿Cuántos? - Ninguno... es un problema de hardware.