Vou colocar o código aqui e explicar logo depois.
$requi = $_SERVER["HTTP_REFERER"];
$requi= strtolower("/$requi/"); //
$server = $_SERVER['SERVER_NAME'];
$server= strtolower("/$server/");
if(preg_match($server, $requi) == 0){
header("Location: http://www.SeuSite.com.br");
die();
}
Explicação
Linha 1 Aqui nós pegamos quem esta chamando o script.
Linha 2 Transforma todas as letra para minúscula.
Linha 3 Aqui pegamos o nome do servidor que é www.SeuSite.com.br.
Linha 4 Transforma todas as letra para minúscula.
Linha 5 Se ele não encontrar $server(www.SeuSite.com.br) na variável $requi o resultado é 0 então ele entra no if.
Linha 6 Redireciona quem tiver tentando acessar para página inicial.
Para utilizar esse script é só colocar na primeira linha do seu arquivo.php recomendo que crie um NoDirectAccess.php (de o nome que você quiser) e coloque o código dentro do mesmo depois você da um require_once("NoDirectAccess.php"); na primeira linha dos scripts que você queira proteger contra acesso direto.
Com isso evitamos dois problemas além de não permitir o acesso direto impede que scripts externos acessem o arquivo ou a maioria deles.
Dicas: Você ainda pode aprimorar esse script usando um banco de dados e armazenar os sites que podem acessar os seus arquivos mas isso é assunto para outro artigo.
9 comentários:
Grande dica!! Muito obrigado
Obrigado funcionou.. estive preocurando um desses mais nenhum funconava flw..
Perfeito!
Excelente!
Somente atenção com os espertos que inserirem o nome do server como uma pasta. Assim vai passar.
Valeu pela ótima dica.
A intenção aqui foi de evitar acesso direto.
Para proteger efetivamente um dado você teria que acrescentar linhas de controle de acesso que deve ser utilizada para proteger toda e qual quer informação sigilosa a qual é a única coisa que "porcos" dão a vida para conseguir burlar.
Grande Ajuda, era tudo que eu estava precisando valeu pelo post.
Ótimo. Era isso que eu precisava. Muito obrigado
Muito bom, foi o único script que achei na net que funcionou , valeu!!!
Show de bola, salvou minha pele
Postar um comentário