Carlos Gonçalves: Bem Vindo à Web 2.0! Este blog é direccionado a todos os níveis de web designers e programadores. Todos os assuntos serão discutidos, incluindo CSS, Javascript, Java, PHP, entre outros!

Segurança Avançada com .htaccess – Bloquear Acesso a Include Files

Quando faço sites para clientes, e para mim mesmo, utilizo inúmeros include files para tornar mais fácil a manutenção do site. Podem ver um pouco mais sobre include files AQUI. Esses include files podem:

Segurança - Confidencialidade, Integridade e Disponibilidade

Segurança - Confidencialidade, Integridade e Disponibilidade

  1. Ser compostos apenas por HTML, sem programação voltada ao servidor
  2. Ser classes PHP usadas no site
  3. Composto por PHP e HTML
  4. Código PHP para proceder a uma acção específica, muitas vezes, scripts em AJAX

Obviamente, se uma pessoa tiver sorte e adivinhar o path e o nome do ficheiro do meu script include, pode resultar em problemas, especialmente se se tratar de um script não seguro em AJAX (mas eu não faço isso — nem vocês, pois não?). Por exemplo, tomemos o exemplo deste fraco código PHP que iria ser executado aquando de uma chamada feita com AJAX:

//includes/ajax/apagar_id.inc
$query = 'DELETE FROM minha_tabela WHERE id = '.$_GET['id'];
mysql_query($query);

Imagina, que o utilizador altera o ID na querystring para “‘ or 1″ — toda a informação será apagada!
Mesmo que os meus scripts sejam seguros (significa que uso uma validação apropriada para certificar-me que foi chamado correctamente), um utilizador/hacker não terá nenhum problema em chamar um ficheiro include.

É aqui que entra o “truque”, utilizando .htaccess, podemos evitar qualquer tentativa de um utilizador chegar a incluir qualquer ficheiro:

<files ~ "\.inc$">
	Order allow,deny
	Deny from all
</files>

O código acima diz ao servidor para rejeitar todos os pedidos feito pelo utilizador, para qualquer ficheiro que termine em .inc. Podes facilmente modificar o .htaccess acima para a tua própria estrutura.

Partilha e Desfruta:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Live
  • MySpace
  • Print
  • Twitter
  • DZone
  • email
  • LinkedIn
  • MSN Reporter
  • PDF
  • Reddit
  • Twitthis
  • Yahoo! Bookmarks

Posts Relacionados:


Muito FracoFracoRazoávelBomMuito Bom (Nenhum voto por enquanto)
Loading ... Loading ...
  • Boa dica. No entato, tudo o que seja classes, e ficheiro exclusivamente para incluir, coloco-os dentro de um directorio, seja ‘phpscripts’, juntamente com o seguinte ficheiro .htaccess:

    deny from all

    É basicamente a mesma coisa, mas protege tudo o que esteja dentro desse directório, independentemente da sua extensão ou tipo de ficheiro ;)

    ResponderResponder

Você pode seguir os comentários deste artigo pelo Feed RSS 2.0.