Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales
Autor
|
Tema: Evitar que Bot de Google vote noticias en mi web (Leído 1,671 veces)
|
|
asasasaq
|
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..
|
|
|
|
|
En línea
|
|
|
|
drvy | BSM
Desconectado
Mensajes: 1.129
badstupidmonkey
|
<?php if(stristr($_SERVER['HTTP_USER_AGENT'],'google')) {die('Fuera google! no estas admitido xD');} ?> Ponlo en las primeras lineas. Saludos
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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 !
|
|
|
|
|
En línea
|
|
|
|
|
wirelesswifi
|
<?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? <?php if(stristr($_SERVER['HTTP_USER_AGENT'],'yahoo')) {die('No admitido');} ?> Tengo una duda, es google o googlebot <?php if(stristr($_SERVER['HTTP_USER_AGENT'],'googlebot')) {die('No admitido');} ?> Saludos..
|
|
|
|
|
En línea
|
|
|
|
|
wirelesswifi
|
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.
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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: <?php function is_bot($navegador) { $m= strtolower($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 !
|
|
|
|
« Última modificación: 17 Enero 2011, 17:23 por Diabliyo »
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.334
he vuelto :)
|
no bastaria con rel="nofollow" ? aunque si... si se pasa el nofollow habria que poner seguridad extra con los bots
|
|
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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 !
|
|
|
|
|
En línea
|
|
|
|
|
wirelesswifi
|
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: <?php function is_bot($navegador) { $m= strtolower($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!
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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  , 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  Saludos !
|
|
|
|
|
En línea
|
|
|
|
|
wirelesswifi
|
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  , 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  Saludos ! Si, yo los logs los guardo por mysql cuando votan a una noticia se guarda la IP en una tabla y casi todas son IPS 66.249.72.XXX 66.249.71.XXX 66.249.65.XXX etc... Ya lo he puesto por el codigo que me has dado y por robots.txt. Saludos! y Gracias.
|
|
|
|
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.334
he vuelto :)
|
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 !
se usan en el link  <a rel="nofollow"></a> una tonteria es pensar que solo es va en el meta del documento
|
|
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
tragantras
Desconectado
Mensajes: 466
|
como ya dijeron antes, el archivo "robots.txt" se inventó para algo, no?
ponle un disallow y a correr, sin aún así quieres... tratar con crawlers indeseables (suponemos, como han dicho tambien, que no mandan headers de fiar y que no hacen uso del robots.txt), tienes varias opciones:
-pon un captcha para votar: lo veo lo más logico, si estas haciendo una votación tampoco querrás que te monten un script de autovotar y te jodan el sistema -validación por javascript: casi ningun crawler implementa javascript, de manera que puedes crear el link a la votación de manera dinámica con javascript -sistema de usuarios: sobre añadir nada, no?
|
|
|
|
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.334
he vuelto :)
|
hacer la poll en un formulario por post? 
|
|
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
|
|
|
|