Dicas básicas de segurança no PHP

Quando o indivíduo começa a programar, ele não se preocupa com a segurança do software que está desenvolvendo.
Depois de um certo tempo, ele acaba sendo requisitado a desenvolver sistemas maiores, mas continua com vícios de programação antigos. Seguem aqui algumas dicas SIMPLES que podem aumentar a segurança do seu sistema PHP.

[ Hits: 59.267 ]

Por: Danilo em 12/05/2004 | Blog: http://www.danilocesar.com


Arquivos .inc



Muitos programadores PHP tinham (alguns ainda tem) o hábito de salvar seus includes em arquivos do tipo /inc/config.inc.

Nesses arquivos config.inc, geralmente colocam strings SQL, variáveis importantes, funções globais, etc. Eis um exemplo de arquivo .inc:

// conectar.inc
<?
$host_db = "localhost"
$user_db = "usuário"
$pw_db = "senha"

$conexao = mysql_connect($host_db,$user_db,$pw_db);
?>

Mas, geralmente estes arquivos .inc tem as permissões de acesso como qualquer outro e como não é interpretado pelo servidor, pode-se facilmente fazer o download dos mesmos.

Qualquer usuário mal intencionado que fizesse o download desse arquivo teria acesso ao seu endereço do seu servidor mySQL, à sua senha e seu usuário.

Correção. Existem dois métodos:
  • Deixar seus arquivos em uma pasta especial e mudar as permissões de acesso desta pasta.
  • A que eu prefiro. Mudar as extensões de config.inc para config.inc.php.

Assim, o servidor se encarrega de 'ocultar' o conteúdo do arquivo.

    Próxima página

Páginas do artigo
   1. Arquivos .inc
   2. SQL Injection
   3. Includes mal formatados
   4. Varíaveis globais
Outros artigos deste autor

Mentis - Reprograme-se

Leitura recomendada

Instalações PHP não seguras

Autenticação de sites com PHP e MySQL

Dados sensíveis em arquivos com extensão .inc

Segurança: Autenticando o PHP com HTTP (Authentication Required)

Introdução a manipulação de erros em PHP

  
Comentários
[1] Comentário enviado por dsa em 12/05/2004 - 13:59h

O artigo ficou ótimo !

Até fui testar alguns sites que fiz e hehehe nada deu erro !

Ainda bem ! :)

See Ya !

[2] Comentário enviado por y2h4ck em 12/05/2004 - 22:56h

Acho que seria muito interessante comentar sobre determinadas funcoes do php como passthru(), que se nao seram utilizadas ... serem desabilitadas da conf do PHP. pq e uma funcao das mais perigosas.

No mais o artigo ta bacana.
[]

[3] Comentário enviado por mjs em 14/05/2004 - 09:40h

Ao ínves de usar este code:

$user = str_replace('\'', '\\\'', $user);
$senha = str_replace('\'', '\\\'', $senha);

Pode-se usar as próprias funções do PHP, para substituir os as " por \" e ' por '\ usa-se o addslashes(), pra fazer o retorno disso usa-se o striplashes().

$user = addslashes($_POST["usuario"]);
$senha = addslashes($_POST["senha"]);



[4] Comentário enviado por jllucca em 15/05/2004 - 21:05h

Fiquei abobado com o que esta descrito no SQL Injection...

[5] Comentário enviado por y2h4ck em 16/05/2004 - 01:01h

Realmente o SQL injection deixou muito a desejar jlluca eheheh
acho que os flintstones usavam esse tipo de ataque eheheheh
:D

[6] Comentário enviado por maximous em 16/05/2004 - 02:24h

Na última parte (Variáveis globais), seria mais fácil deixar o php.ini com o 'register_globals' em 'off', o que muitos adminstradores não fazem :D

Outra dica é deixar nos servidores de desenvolvimento o error_reporting igual a 'E_ALL', assim você pode ir aprendendo a programar corretamente.

Uma dica final, verificar também o magic_quotes_*, pois estas configurações afetam os dados passados ao script.

[]s

[7] Comentário enviado por laudelino7 em 27/06/2004 - 00:32h

artigo muito bom para os que estiverem começando agora. dá dicas bastante cruciais.

[8] Comentário enviado por scriptfacil em 03/07/2004 - 11:19h

Gostei, porém acredito ter uma falha nesta segurança ainda.

se o intuito é assegurar o acesso ao bd, então existe um outro caminho de busca para conexão com banco e não sei se posso postar aqui, pois é conteúdo hacker, bem se puder vocês me avisem.

[9] Comentário enviado por removido em 27/01/2005 - 10:03h

muito massa o artigo....

quem quiser saber mais sobre como se previnir de sql injection
na documentação do PHP tem

http://www.php.net/manual/pt_BR/security.database.sql-injection.php

[10] Comentário enviado por ferlopes em 21/01/2006 - 15:58h

Existe um excelente documento entitulado "PHP Security", que é bem detalhado e dá conta desse e de outros problemas de segurança do PHP, de como fazer um código bom e seguro.

O endereço é:
http://phpsec.org/php-security-guide.pdf

[11] Comentário enviado por wesleyyps em 15/06/2007 - 16:07h

Eu acho que este artigo ficou bom, mas faltaram alguns exemplos de códigos corretos, pois como novato na área, segurança não é uma das minhas qualidades. mas o artigo ajudou bastante com as minhas dúvidas.

[12] Comentário enviado por ghosturbo em 04/09/2007 - 19:38h

Muito interessante, são coisas logicas, mas que a gente acaba esquecendo. SQL injecton é um perigo, um banco de dados é a coisa mais importante do site. Tô começando agora e mecher com php e mysql, porém os tutoriais que encontrei não tem muito conteudo sobre segurança, primordial para qualquer aplicacao web, só acho que o artigo foi curto demais, deveria ter falado de mais tecnicas de invasão e dicas de segurança para combate-las. PHP e SQL injecton tem muito material, dá para escrever até um livro, mas o artigo ficou bom, falou de forma reduzida os topicos principais...

[13] Comentário enviado por Lisandro em 10/07/2009 - 08:14h

Ótimo artigo, parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts