Pergunta

Eu tenho um site que busca dados de alguns arquivos PHP para exibi-los no site.No entanto, para proteger meus dados para serem usados ​​por outras pessoas, desejo proteger meu arquivo PHP sendo chamado por rastreadores, bots, etc. para coletar dados.

Eu evitei isso verificando o URL de referência, mas isso pode ser facilmente contornado.Então, existe alguma outra maneira de proteger meus dados?Desejo que apenas meu site possa acessar esses arquivos.

Obrigado !!

Foi útil?

Solução 4

Como sugerido por Daverandom, eu finalmente usei uma técnica de autenticação baseada em cookie para evitar chamadas de PHP por outros sites.

O servidor primeiro define um código de acesso para cada cliente válido.Este código de acesso é verificado no início do arquivo PHP.

Cookie é definido um limite máximo de tempo de 5 horas e cookie é destruído na janela Fechar.Isso está funcionando muito bem para mim.

Por favor mencione se há alguma falha nesta parte !!

Outras dicas

Adicionar Autenticação HTTP básica no topo do seu arquivo php:

if ( !isset($_SERVER['PHP_AUTH_USER']) || 
      !isset($_SERVER['PHP_AUTH_PW']) ||
      !($_SERVER['PHP_AUTH_USER'] == 'user' && $_SERVER['PHP_AUTH_PW'] == 'pw'))) {
    header('WWW-Authenticate: Basic realm="Mirkwood"');
    header('HTTP/1.0 401 Unauthorized');
    die();
}

Se você possui um servidor web Apache e no diretório raiz do seu site você cria um arquivo .htaccess (ponto htaccess sem sufixo).

Experimente esta sintaxe para impedir o acesso a tipos de arquivos específicos:

<FilesMatch "\.(htaccess|htpasswd|ini|php)$">
 Order Allow,Deny
 Deny from all
</FilesMatch>

Outra maneira é em todos os arquivos php não indexados você incluir algo assim:

Em index.php, adicione um valor de acesso como este:

$access = 'my_value';

Em todos os outros arquivos, inclua esta verificação antes mesmo que um único byte seja ecoado pelo php:

if(empty($access)) {
    header("location:index.php"); 
    die();
}
.

Eu tenho um site que busca dados de alguns arquivos PHP para exibi-lo no site.

Mova os arquivos que contêm os dados fora da raiz do documento.Assumindo que os arquivos PHP estão apenas sendo acessados por outro dentro do Docroot.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top