0

Arquivos .inc, onde e como utilizar

criado por Victor Henrique em 12/11/2003 3:32pm
Os arquivos .inc, feitos exatamente para includes não são arquivos tão confiáveis. Isso acontece pelo fato de os servidores os interpretarem como arquivos texto ou os disponibilizarem para download.

Agora imagine a seguinte situação:
Você tem em todas as páginas de seu site um include para conexao.inc(com permissões padrão) que é o arquivo que contém as linhas de conexão e seleção, por exemplo, de um banco de dados MySQL.

O arquivo conexao.inc(nome bem sugestivo para um hacker, não?) tem o seguinte conteúdo:

<?php
$conn = mysql_connect('localhost','seusite','senhadobanco');
$sel = mysql_select_db('seusite');
?>

A princípio nada mal com o arquivo. Ele é um arquivo PHP e será interpretado corretamente quando incluído. Aí que está o X da questão.

Suponhamos que este arquivo não seja incluído e alguém descubra que ele está no endereço http://seusite/conexao.inc.
Será que você já sabe o que acontece se a pessoa digitar esta URL no browser? Claro, ela terá acesso a senha de seu banco, que, muito provavelmente, também é a senha de seu FTP.

Nada mal para alguém que sinta prazer em destruir as coisas dos outros. Esta pessoa terá tudo que quiser em mãos, desde dados de seus usuários, se você guardar isso, até o controle todo de seu site via FTP.

Na próxima página explicarei como se livrar deste peso na consciência.

Comentários:

Mostrando 1 - 10 de 13 comentários
Ricardo Lopes disse:
Hm... bom tópico...
Porém, muito trabalho pra uma coisa tão simples!

os arquivos .inc não existem para ficar na pasta "www" junto com os demais arquivos php, justamente pela falha de segurança que isso gera.

Geralmente, existe uma pasta chamada "includes", que fica dentro do diretório raiz, assim como o diretório "www" (onde ficam os arquivos php).

Lá, sim, é o local adequado para deixar os arquivos .inc, pois esta pasta nao pode ser acessada externamente (o unico diretório dentro do diretório raiz que pode ser acessado externamente é o "www").

Os arquivos php que estiverem dentro da pasta "www" poderão acessar a pasta "includes", já que estão dentro da mesma máquina local, mas pessoas de redes externas, não conseguirão a menos que possuam a senha do FTP.

Isso mata a idéia de acessos pela URL, baixa do arquivo texto e etc, como dito no tópico.

Além disso, é possível alterar o diretório padrão onde ficam os includes, através do arquivo php.ini...

Os arquivos .inc, quando utilizados corretamente, são muito úteis e seguros e não podem ser acessados pela url a menos que haja falha de estrutura, como o exemplo abordado no tópico.

Espero ter ajudado!
16/03/2010 10:25pm (~6 anos atrás)

Parabêns pelo conteudo da matéria.......tomei a liberdade de indica-la para os amigos do iMasters.

Abraços

ACLourenço
29/03/2004 8:55am (~12 anos atrás)

seria um arquivo texto de "arquivos proibidos para download"?
Valeu pelo artigo!
03/12/2003 2:22pm (~13 anos atrás)

marcio disse:
muito importante essa dica do include e o mais engraçado é que muita gente acaba se esquecendo desse risco ou não o conhecendo...
é sempre bom saber que tem gente diposta a alertar para os riscos de segurança...
abraços a todos

Marcio
01/12/2003 12:50pm (~13 anos atrás)

Realmente é uma ótim alternativa, valeu Marcos.
17/11/2003 11:09am (~13 anos atrás)

Leonardo disse:
Legal o artigo, mas .INC é uma extensão muito visada... É mais fácil criar uma pasta de includes e tratá-los por .PHP. Usar um robot.txt para evitar downloads desses arquivos também é muito bom. Todo cuidado é pouco. Na Web então, quase nada.
17/11/2003 9:23am (~13 anos atrás)

Outra alternativa que não foi discutida é criar uma pasta chamada /inc/ fora do /htdocs/ (ou outro diretório web utilizado). O conteúdo desta pasta não pode ser baixado pela Internet por não se encontrar em área pública. Salve alí seus arquivos .inc e chame-os em seus scripts php da seguinte forma:
include("../inc/arquivo.inc");
17/11/2003 9:19am (~13 anos atrás)

Ótima dica para o meu projeto e para qualquer um!

Parabéns!
16/11/2003 6:23pm (~13 anos atrás)

É simples Lucas,
um arquivo .inc.php sinaliza claramente que é um include, mas é executado como um script PHP.
Qualquer dúvida, basta postar.
14/11/2003 1:13pm (~13 anos atrás)

Como, nem sempre vc pode adicionar um aplicativo à uma extencao, recomenda-se a utilizacao de algo parecido como (nome).inc.php, sinalizando claramente, que e um include, mas potencialmente, nao tao perigoso como um .inc
14/11/2003 12:55pm (~13 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)