Jump to content

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á!

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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);

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By BrunoBit
      Fala rapaziada, quanto tempo. Tudo certo com vocês?
       Então, tô com uma duvida bem básica, mas nunca encontrei uma resposta por não saber direito o termo de pesquisa.
      A duvida principal é:
       Como interceptar uma requisição GET/POST realizada pelo backend? Sei que existe o man-in-the-middle, porém, em todas as pesquisas que fiz eram exemplos entre visitante/usuario -> backend, e esse não é o caso da minha duvida.
       
      Agora minha duvida mais precisa é:
      Como interceptar uma requisição entre backend -> webservice? E como coletar os dados nessa requisição?
      Por exemplo: Interceptar uma private key que somente o backend conhece pra consumir um webservice via POST ou GET [ilustração anexada abaixo].
       
      Objetivo da pergunta:
      Segurança das minhas aplicações. Não sou cracker e não tenho a mínima intenção de ser.
       
      Valeu rapaziada, abração e fiquem com Deus.
       
       

    • By zanetti1
      Ola pessoal, tem uns novos modelos de digitação de senhas com 5 botões e os números são juntos, alguém sabe com funciona ou se existe alguma biblioteca para isso;
      Segue imagem para melhor entendimento.
       

    • By WizardStar14
      Quando entro no Pinterest não consigo salvar Pins,conversar e nem ir no meu perfil mesmo que eu recarregue a pagina fica persistindo,então eu fui no inspecionar elemento e apresentou 6 erros no Console,gostaria de saber como eliminar-los,por favor:
       
      Unrecognized Content-Security-Policy directive 'prefetch-src'. about:blank:1
      The source list for Content Security Policy directive 'script-src' contains an invalid source: ''strict-dynamic''. It will be ignored. about:blank:1
      The source list for Content Security Policy directive 'script-src' contains an invalid source: ''report-sample''. It will be ignored. about:blank:1
      The source list for Content Security Policy directive 'script-src' contains an invalid source: ''strict-dynamic''. It will be ignored. fb.html:1
      The source list for Content Security Policy directive 'script-src' contains an invalid source: ''report-sample''. It will be ignored. fb.html:1
      Uncaught SyntaxError: Unexpected token function  pjs-entryChunk-www-1a1f951ec31fc46c4ebb.js:1 
    • By Motta
      Em depoimento à PF, funcionário da Receita nega quebra de sigilo de Bolsonaro e reafirma que foi uma brincadeira
       
      Sem entrar no mérito de uma questão em investigação vai aqui uma reflexão para a comunidade de TI , o elo fraco na questão da segurança da informação é sempre o usuário.
       
      Já vi questões graves com brincadeira , não neste nível mas graves.
    • By 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
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.