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.325 ]

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


Varíaveis globais



Para quem está começando a programar em PHP, é muito mais prático liberar variáveis globais em seus scripts PHP.

Em vez de fazer $_GET["usuario"], fazem apenas $usuario.

Isso acarreta em alguns problemas.

Vejamos esta situação: teste.php

<?
if (autenticar($user,$senha)) {
    $verificado=1;
}

if($verificado==1) {
    // Faz alguma coisa importante
}
?>

Novamente, o usuário poderia passar a seguinte URL:

teste.php?verificado=1

Solução:
Neste caso, bastaria um 'else $verificado=0', mas as situações podem ficar mais complexas. E podem ser contornadas, evitando o uso de variáveis globais.

Página anterior    

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

XSS - Um exemplo de ataque

Pentesting on PHP apps: XSS

Criptografando mensagens com PHP

Segurança em PHP

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