[Resolvido] Acesso direto ao arquivo
Olá pessoal,
Tenho uma dúvida que já foi muito discutida aqui no fórum entretanto nenhum dos posts que já andei olhando tratam esse problema, creio eu, de forma correta.
Uso na construção do meu site juntamente com seu sistema administrativo apenas uma pagina index principal para o site e uma para o admin.
Partindo do principio que para mostrar as outras paginas essas serão incluídas na index principal, por include/require ou através do get ex: index.php?page=inicial, ?page=news... etc.
O Problema:
Supondo que todos os usuários visitem o site como a url é mostrada no navegador ninguém vai ter problema e tudo ficara bem. Mas, caso um engraçadinho comece a colocar a extensão do arquivo na url algumas coisas estranhas poderão acontecer. ex: www.site.com.br/news.php, www.site.com.br/Admin/usuarios.php
Isso
56b
geralmente ocorre quando usamos arquivos incluídos de outras pastas no arquivo index principal. E muitas vezes se acessado diretamente vai ser mostrado o conteúdo do html do arquivo ou geralmente um warning de erros por include ou require. Esse ultimo, porque geralmente o arquivo incluido esta ou na pasta raiz ou em outras pasta que não seja aquela onde reside o arquivo acessado.
...
Ok, nem sempre isso gera problemas de segurança, mas tratando-se de um sistema mais profissional, eu já vi muitas vezes sites e sistemas webs fazerem como que esse tipo de acesso direto ao arquivo ser direcionado para a pagina de erro 404.
Ai fica a dúvida mal resolvida: como resolver isso de forma correta?
Sei que existem "n" opções... Mas muitas delas, inclusive as tratadas aqui no fórum são as melhores soluções para sistemas e sites de grande porte com centenas e centenas de arquivos.
Vejamos,
- sendo que cada arquivo do Admin contém uma validação e geralmente essa validação esta em um arquivo separado e que é incluido/requerido no inicio do mesmo. Para não dar warnig ou o html não ser mostrado o arquivo de validação teria que ser colocado jundo ao arquivo q é acessado e ainda com alguma validação, pq se o arquivo estiver em pasta quando ele é incluído na index principal ele é considerado como se estivesse na pasta raiz. Isso pra mim num sistema complexo seria total
537
mente complicado de administrar. Seria arquivos e arquivos de validação em varias pastas e se precisar alterar um vai ter que ficar procurando todos os outros. Sem falar que seria necessário uma validação para qual include/require o arquivo iria receber, pois como dito, uma para quando ele é acessado na index principal e outra para quando for direto. Além de que no acesso direto não tem como validar sessão, uma vez q ela é iniciada na index e não no arquivo. E caso fosse necessário teria que se iniciar a sessão em todos os arquivos e eu não sei as conseqüências disso uma vez q ela seria iniciada no arquivo index principal tbm, isso não parece ser correto.
Talvez, como eu sou um mero programador, eu tenha perdido essa aula e a resposta para esse problema seja bem mais fácil do que eu imagino. Ou melhor, que esse método utilizado na criação de sites e sistema não seja o melhor a ser usado.
Peço ajuda tanto para resolver esse problema como para se for o caso novas técnicas de desenvolvimento.
Como também não entendo muito de configuração de servidor será que existe alguma configuração direta no host do tipo, deu erro de warning ele já manda pra pagina 404?
Discussão (8)
Carregando comentários...