Ir para conteúdo

Recommended Posts

Pessoal, boa tarde. Tenho uma página que assim que a pessoa digita usuário e senha ela já mostra o respectivo PDF para a pessoa na tela. Só que esses arquivos estão em uma pasta no servidor chamada "arquivos". se eu digitar o endereço do site\arquivos ele me mostra um INDEX contendo todos os arquivos da pasta. Como posso protegê-los? Vou postar o PHP:

 

<?php
$login = $_POST['username'];
$senha = $_POST['pass'];

$pasta = "arquivos/"; // criei a pasta arquivo na raiz do projeto
$formato = ".pdf";
$arquivo = $pasta.$login.$senha.$formato; // endereço completo do arquivo

if(file_exists($arquivo)){ // se o arquivo existir
    header("Location:".$arquivo);
}else{
    echo "Arquivo não existe.";
}

?>

 

Obrigado pela ajuda desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um arquivo index.php e colocar dentro da pasta, redirecionando para a home quando acessada a pasta. Ou uma solução mais robusta, é utilizar htaccess, veja: https://pt.stackoverflow.com/questions/52930/proteger-pasta-contra-acesso-direto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou olhar... você sempre me salvando brother... obrigado! Fiz da seguinte forma:

 

<?php echo "<script> location.href='https://www.meusite.com'; </script>"; exit; ?> 

 

Deu certo. mas agora que percebi... vou ter que colocar esse arquivo em todas as pastas? as outras estão mostrando o conteúdo ainda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um arquivo .htaccess no root do seu site e adicione o seguinte comando:

Options -Indexes

Isso fará que, na pasta em questão e suas respectivas subpastas, não seja mais exibidos a lista de arquivo.

 

Entretanto, ainda existe uma segunda falha. Se alguém tiver o link direto do arquivo, poderá acessá-lo sem se logar.

 

O mais recomendado é que a pasta de arquivos fique fora do public, ou seja, que a pasta não seja acessível via browser. Dessa forma, somente o PHP possuiria acesso e você pode utilizar o código abaixo para exibir o arquivo:

<?php
$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');

readfile($file);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por gustavozavanin
      Olá Galera, 
      O site de um cliente foi atacado por vírus no mês passado. Contratei os serviços da empresa Sucuri.net e eles me entregam os arquivos íntegros e o site funcionando novamente. Para a minha surpresa, o google não quer indexar os meus anúncios, mesmo após a avaliação manual, eles acusam que ainda existem links com redirecionamentos dentro do site.

      (Esses são os links que o Google acusa após a avaliação manual)
       
      http://www.hipermixbrasil.com.br/argamassa.php http://www.hipermixbrasil.com.br/contato-detalhe.php?id=MQ== http://www.hipermixbrasil.com.br/ http://www.hipermixbrasil.com.br/simulador.php http://www.hipermixbrasil.com.br/servicos-detalhe.php?id=Mw==
      Eu já tentei criar redirects 301 para essas páginas.
      Eu não consigo solucionar esse problema. O site está 100% limpo segundo 3 scanners diferentes, incluindo o monitor de problemas do Google.

      Por favor se alguém puder me ajudar, já não sei mais o que fazer
    • Por adrianoavilao
      Uso a menos de 3 meses o Cobia11 Gravity aqui na empresa.
       
      Sem explicação, quando abrir o aplicativo ele tava com os Menus ( >> , Play , X , | | , + , Engranagem , etc) , travados, não consigo executar as tarefas os bks imediatamente. A tela abaixo “Branca”, de vizualizão Literalmente Sem nada.
       E o backup não  faz. 
       
      O que pode ser? 
      Sera que preciso reinstalar? 
       
    • Por Motta
      Facebook confirma que senhas de usuários podiam ser lidas por funcionários
      Arquivo texto , senha sem criptografia , velho nem na padaria do sr Manuel ...
    • Por cesaroet
      Galera, estou com o seguinte problema:
      tenho 4 redirecionamento, até a 2 funciona normal, mas a partir da 3 redireciona para o menu.php novamente.
      alguem tem uma dica?
      <?php session_start(); if(!isset($_SESSION['usuario']) /*|| ($_SESSION['nivel']) */){ session_destroy(); header("location:menu.php"); exit; } if($_SESSION['nivel'] == '1'){ header("location:checklist_gabriel/index.php"); } if($_SESSION['nivel'] == '2'){ header("location:checklist/index.php"); } if($_SESSION['nivel'] == '3'){ header("location:conferencia/controle/"); } if($_SESSION['nivel'] == '4'){ header("location:controle/index.php"); } ?>  
    • Por luisfeliperm2
      Estou criando um sistema de login e cadastro de um jogo em php. Conectei ao postgresql e agora estou com um problema. Preciso saber qual criptografia é utilizada. Todas as hashs possuem 32 caracteres e por isso pensei que fosse MD5. Mas não é.
      password - > 62f9f2022536274b47f4daa0887361cf
      teste1 -> deaafc806aef00d0262e098ff089fff1
      Outras senhas criptografadas:
      59a93faaaf6d43ca4c3ef9ec183200ea
      47d163c4e9388dfd4b2dc7c327a33761
      8dffc56f2382d0f5552c04d9fa014d0e
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.