Evitar que Bot de Google vote noticias en mi web

Iniciado por RicRed, 17 Enero 2011, 12:19 PM

0 Miembros y 1 Visitante están viendo este tema.

RicRed

Hola a todos los del foro, tengo un archivo de noticias en la cual tengo un enlace hacia votar.php que vota la noticia por id

Ahora los Bots de google votan las noticias, como evitaria esto?

Saludos..

#!drvy

Código (php) [Seleccionar]
<?php

if(stristr($_SERVER['HTTP_USER_AGENT'],'google')) {die('Fuera google! no estas admitido xD');}

?>

Ponlo en las primeras lineas.

Saludos

Diabliyo

Cita de: asasasaq en 17 Enero 2011, 12:19 PM
Hola a todos los del foro, tengo un archivo de noticias en la cual tengo un enlace hacia votar.php que vota la noticia por id

Ahora los Bots de google votan las noticias, como evitaria esto?

Saludos..

Viendo que no hacer reconocimeinto de los bots, entonces me imagino que no estas contabilizando bien las visitas a tu sitio, cierto ??

Lo primero que te recomiendo hacer, es crees un script que reconoce los diferentes bots en la red, posteriormente esto te ayudara para saber contabilizar las visitas, así podrás discernir entre un bot y un usuario y contabilizar visitas de usuarios reales.

Y ahora si podrás también tener un mejor control sobre votaciones, vistas de noticias, hacerte un top 10 mas real, etc, etc...

Saludos !

wirelesswifi

Cita de: drvy | BSM en 17 Enero 2011, 14:32 PM
Código (php) [Seleccionar]
<?php

if(stristr($_SERVER['HTTP_USER_AGENT'],'google')) {die('Fuera google! no estas admitido xD');}

?>

Ponlo en las primeras lineas.

Saludos

Ok, gracias drvy | BSM ahora para yahoo seria asi?

Código (php) [Seleccionar]
<?php

if(stristr($_SERVER['HTTP_USER_AGENT'],'yahoo')) {die('No admitido');}

?>


Tengo una duda, es google o googlebot

Código (php) [Seleccionar]
<?php

if(stristr($_SERVER['HTTP_USER_AGENT'],'googlebot')) {die('No admitido');}

?>


Saludos..

wirelesswifi

Cita de: Diabliyo en 17 Enero 2011, 17:06 PM
Viendo que no hacer reconocimeinto de los bots, entonces me imagino que no estas contabilizando bien las visitas a tu sitio, cierto ??

Lo primero que te recomiendo hacer, es crees un script que reconoce los diferentes bots en la red, posteriormente esto te ayudara para saber contabilizar las visitas, así podrás discernir entre un bot y un usuario y contabilizar visitas de usuarios reales.

Y ahora si podrás también tener un mejor control sobre votaciones, vistas de noticias, hacerte un top 10 mas real, etc, etc...

Saludos !

Si es cierto, ahora para las visitas en el archivo noticias.php insertaria el mismo codigo de arriba?

Saludos.

Diabliyo

#5
Cita de: wirelesswifi en 17 Enero 2011, 17:11 PM
Si es cierto, ahora para las visitas en el archivo noticias.php insertaria el mismo codigo de arriba?

Saludos.

Mira para saber los nombres de los bots, no hay como primero hagas un LOG completo sobre quienes entran, vaya, detectes el navegador, lenguaje e ip, con esto conforme pase el tiempo notaras que existen personas (eso crees tu) que entran con un navegador que tiene por nombre: bing o google, es mas que logico que no es una persona, y se trata del bot webcrawler (un buscador), asi que, conforme vas observando tu log y te van callendo los Bots, vas descubriendo su nombre real.

Ahora, conforme vas reconociendo mas bots, yo te recomiendo te crees una funcion mas o menos asi:

Código (php) [Seleccionar]
<?php
function is_bot($navegador)
      {
      
$mstrtolower($navegador); // convertimos el nombre a minuscular
      
$bots= array( 
            
"google""otro""otro""otro");

      
# ahora comprobar si es un bot
      
foreach( $bots as $data )
            {
            if( !
strcmp($data$m) ) # si "m" es igual que "data", entonces es un bot
                  
return 1# retornamos 1, es un bot
            
}
      return 
0# exito, no es bot
      
}

if( !
is_bot($_SERVER['HTTP_USER_AGENT']) ) # si no es bot
      
{
      
# guardamos datos ya sea log o votacion, o lo que sea...
      
}
?>


Asi ahorras codigo y solo invocas la funcion is_bot() pasandole como argumento el $_SERVER['HTTP_USER_AGENT'] y si devuelve 1 entonces es un bot, sino, entonces es un usuario real.

OJO: hay que ir observando tu LOG COMPLETO para que vayas conociendo los bots, de nada sirve busques en google nombre de bots o webcrawlers, estos a veces cambian de nombre cada varios a~os o cuando se les plasca, por ejemplo: el bot de google se llamaba antes como googlebot, ahora se llama google.

Saludos !

Nakp

no bastaria con rel="nofollow" ? aunque si... si se pasa el nofollow habria que poner seguridad extra con los bots
Ojo por ojo, y el mundo acabará ciego.

Diabliyo

Cita de: Nakp en 17 Enero 2011, 17:23 PM
no bastaria con rel="nofollow" ? aunque si... si se pasa el nofollow habria que poner seguridad extra con los bots

Si quieres evitar los bots y tienes un sitio web o blog, entonces es una tonteria :S... nadie indexaria tu sitio, solo tu y tus amigos conocerian tu pagina.

Eso del nofllow|noindex es solo para sitio donde requieres privacidad, por ejemplo Software para empresa (plataforma web), donde solo y unicamente quieres que accedan proveedores o personas especificas y no cualquier persona.

Pero ya estamos hablando que seria un plataforma, osea, que para ver el contenido necesitarias un user y clave.

Saludos !

wirelesswifi

Cita de: Diabliyo en 17 Enero 2011, 17:19 PM
Mira para saber los nombres de los bots, no hay como primero hagas un LOG completo sobre quienes entran, vaya, detectes el navegador, lenguaje e ip, con esto conforme pase el tiempo notaras que existen personas (eso crees tu) que entran con un navegador que tiene por nombre: bing o google, es mas que logico que no es una persona, y se trata del bot webcrawler (un buscador), asi que, conforme vas observando tu log y te van callendo los Bots, vas descubriendo su nombre real.

Ahora, conforme vas reconociendo mas bots, yo te recomiendo te crees una funcion mas o menos asi:

Código (php) [Seleccionar]
<?php
function is_bot($navegador)
      {
      
$mstrtolower($navegador); // convertimos el nombre a minuscular
      
$bots= array( 
            
"google""otro""otro""otro");

      
# ahora comprobar si es un bot
      
foreach( $bots as $data )
            {
            if( !
strcmp($data$m) ) # si "m" es igual que "data", entonces es un bot
                  
return 1# retornamos 1, es un bot
            
}
      return 
0# exito, no es bot
      
}

if( !
is_bot($_SERVER['HTTP_USER_AGENT']) ) # si no es bot
      
{
      
# guardamos datos ya sea log o votacion, o lo que sea...
      
}
?>


Asi ahorras codigo y solo invocas la funcion is_bot() pasandole como argumento el $_SERVER['HTTP_USER_AGENT'] y si devuelve 1 entonces es un bot, sino, entonces es un usuario real.

OJO: hay que ir observando tu LOG COMPLETO para que vayas conociendo los bots, de nada sirve busques en google nombre de bots o webcrawlers, estos a veces cambian de nombre cada varios a~os o cuando se les plasca, por ejemplo: el bot de google se llamaba antes como googlebot, ahora se llama google.

Saludos !

Este codigo me serviria para guardar un log de bots de buscadores, y a la vez poner el proceso de votacion.

En el archivo robots.txt lo tengo asi:

# Negando el acceso a un archivo
Disallow: /votar.php


En el cual negaria el acceso al archivo votar.php

Gracias Diabliyo y a todos los que me ayudaron.

Saludos!

Diabliyo

Cita de: wirelesswifi en 17 Enero 2011, 17:34 PM
Este codigo me serviria para guardar un log de bots de buscadores, y a la vez poner el proceso de votacion.

En el archivo robots.txt lo tengo asi:

# Negando el acceso a un archivo
Disallow: /votar.php


En el cual negaria el acceso al archivo votar.php

Gracias Diabliyo y a todos los que me ayudaron.

Saludos!

La idea es buena y existen muchos que tal vez lo hagan asi, pero segun mi experiencia te recomiendo trates de hacerlo tambien por codigo, porque no todos los robots tienen un nombre :D, vaya, muchos acceden mas de 10 veces por dia (lo he visto en mi log), indexan el sitio, tienen un IP muy corta (por ejemplo: 67.45.89.14), la variable $_SERVER['HTTP_USER_AGENT'] esta vacia, no se detecta el S.O, ni el lenguaje.

Y hay otros que no se detecta el $_SERVER['HTTP_USER_AGENT'], pero si el S.O, el lenguaje y su ubicacion geografica, por ejemplo los buscadores Rusos y todos aquellos nuevos que igual ni conocemos.

Todos estos, si se diera el momento, estarian accediendo a tu archivo y haciendote un show otra vez :D

Saludos !