Pular para o conteúdo

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.
Danilo birilo
Hits: 60.996 Categoria: PHP Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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);
?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Arquivos .inc
   2. SQL Injection
   3. Includes mal formatados
   4. Varíaveis globais

Mentis - Reprograme-se

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

Segurança em PHP

XSS - Um exemplo de ataque

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

PHP: Programando com segurança

#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.
#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

Entre na sua conta para comentar.