Proteção anti-robô

Enviada por SILVIO SANTANA 
SILVIO SANTANA
Proteção anti-robô
07 de June de 2010 às 02:09PM
Olá a todos. Estou tendo que lidar com a seguinte situação:

Existe um banco de dados de PRODUTOS. Através de uma pesquisa, alguns produtos são selecionados e mostrados num relatório para o usuário (acesso público) numa página web. Cada produto mostrado nesta relação possui um link, que leva a uma página com mais detalhes sobre o produto clicado. Esta última interação foi implementada via HTTP GET, mais ou menos assim:

<a href=\"dadosprod.php?cp=".$linha['codigo']."\">$produto</a>

Ocorre que precisamos impedir que robôs capturem nosso banco de dados inteiro de uma vez, por exemplo variando $i de 0 a 99999:

wget http://.../dadosprop.php?cp=$i

Queremos fazer com que o usuário possa visualizar os detalhes do produto apenas se o referido produto apareceu na relação anterior, resultante da busca realizada.

Vocês tem alguma sugestão?

Grato,
Silvio
Marcos Regis
Re: Proteção anti-robô
08 de June de 2010 às 10:27PM
Para evitar bots use o padrão do robots.txt

Para evitar usuarios que ficam mapendo sistemas, uma alternativa é usar o REFERER dele.

no inicio do script do dados do produto vc pode usar
if(strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])>-1) // verificando se a ultima página foi uma página do mesmo domínio

O ideal é usar algum token para ser verificado e esse token sempre fosse modificado a cada visita a área de produtos.

o use de sessões tbm é imprescindivel para controlar esses valores.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.