Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

[Resolvido] Restringir Acesso Direto à Diretório...

Recommended Posts

Boas,

 

Fui fazer um test rápido sobre a visibilidade dos arquivos de um diretório que NÃO deveria estar visíveis, mas para infelicidade, estão.

 

O arquivos não contém nenhuma saída PHP (echo/print), mas ainda assim...

 

O que eu fiz foi adicionar um htaccess com deny from all apenas e o acesso passou a ser proibido.

 

Porém, quando tento acessar aparece, logo abaixo do Forbidden o path acessado.

 

Eu acredito que seria ruim isso pois, alguém um pouco mais inteligente poderia acabar confirmando que tal path existe.

 

Com isso, tem como remover essa mensagem ou trocá-la por outra que não faça aparecer o path?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é listar os arquivos do diretório, naquele estilo de listagem do Apache. É ocultar o caminho que aparece abaixo do Forbidden gerado pelo acesso direto ao arquivo.

 

Ex: Com esse htaccess no diretório Cache tenho o arquivo ga83hdbf847wgcbs72.cache (nome hipotético). Supondo que o invasor saiba desse nome aleatório, ao acessá-lo diretamente vai aparecer algo como:

 

Forbidden

 

You don't have permission to access /full/path/to/Cache/ga83hdbf847wgcbs72.cache on this server.

E seria essa segunda linha que eu queria ocultar. Talvez deixando apenas o Forbidden

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, sozinho essa linha não resolveu. Mas em conjunto com o deny from all resolveu.

 

Eu já até sabia desse ErrorDocument, mas não sabia a utilidade. Agora fica a última pergunta: Posso estilizar ele?

 

Simplesmente apareceu Forbidden, letra pequena, sem negrito nem nada. Posso criar um HTML e usar o path até ele no lugar?

 

Acredito que sim, já que me parece muito semelhante às "Páginas de Erros Personalizáveis" que tem no cPanel. Mas não tenho certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É acabei esquecendo o allow, mas enfim, pode usar HTML, inclusive, se quiser pode jogar para alguma página se não quiser colocar o HTML diretamente ai dentro pra não ficar feio...

 

Você só precisa mandar o destino pro htaccess

ex

 

ErrorDocument 403 /mensagem.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem subir esse tópico, mas desde que perguntei mudei tanta coisa que algo deve estar conflitando e, acredito que seja a forma de reescrita das URL's

 

Esta é a parte que direciono todas requisições para o index.php trabalhar:

 

# Rewrite Rules

RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} -s [OR]
#RewriteCond %{REQUEST_FILENAME} -l [OR]
#RewriteCond %{REQUEST_FILENAME} -d
#RewriteRule ^.*$ - [NC,L]
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [NC,L]

 

Antes de todas as mudanças, logo abaixo disso eu colocava a instrução do ErrorDocument.

 

Agora, não funciona mais. Dentro do meu aplicativo principal tenho um mini aplicativo para gerenciar os erros. A única coisa que ele faz é receber a URL error procurar pelo parâmetro code e, se for um código válido, exibir o template.

 

Se eu acesso manualmente a URL http://www.domain.com/error/code/403, por exemplo, vejo um "Na na ni na não", que escrevi de pirraça para distinguir bem um erro personalizado de um padrão.

 

Mas agora nenhuma página que recebe algum header, seja pelo browser, seja por mim mesmo, não "alcança" essa URL definida no ErrorDocument.

 

Porém se eu passo a URL completa, desde o http:// até o número do código, funciona. Mas não no caso do 404 :blink:

 

O que houve?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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