Estava lendo sobre segurança em um email de um grupo de
desenvolvimento de software e muitos alertavam sobre o
perigo do uso de variáveis GET.
O que acontece é que se não for tratada de forma correta, as
variáveis GET podem ser facilmente mascaradas por algum usuário
mal-intencionado.
Então aqui vai a dica, quem tem o PHP com versão menor que
4.2.0, passe a diretiva register_globals = Off, assim o PHP
não criará variáveis automaticamente, pois isso pode ser tornar
um veneno ao seu site.
Trecho da documentação do PHP a respeito das variáveis globais:
"Quando on, register_globals injetará (veneno) em seus scripts todos
os tipos de variáveis, como variáveis request de formulários HTML.
Isto junta-se com o fato de o PHP não exigir inicialização de variáveis
e significa que escrever códigos inseguros é muito mais fácil. Não foi
uma decisão difícil, mas a comunidade PHP decidiu, por definição,
desabilitar esta diretiva. Quando on, as pessoas usavam variáveis ainda
sem saber realmente, com certeza, de onde elas vinham e podiam apenas
supor. Variáveis internas que estão definidas no próprio script
conseguem se misturar com dados requisitados enviados pelos usuários e
desabilitando register_globals muda isto".
Bom, ainda uma dica melhor, atualizem seu PHP, tanto no Windows quanto
no Linux, este é um processo relativamente fácil e de grande valia.
[1] Comentário enviado por removido em 23/12/2004 - 01:49h
Powww essa ai é das antigas =P , mais naum deixa de ser válido.. muitas pessoas usam ainda:
$acao
$acao
E tem uns que melhora mais ainda o caso:
$_REQUEST["acao"]
rs.
Qual é POST ?!?!, Qual é GET afhhhh, na "minha opinião" alêm de ser porco por naum saber de onde vem certas ações, usar assim e uma tremenda falha de segurança.
[3] Comentário enviado por domluc em 23/12/2004 - 08:02h
eh justamente isso guinet, o bom programador (na minha visao) tem de ter sua aplicacao sobre controle. E nao saber de onde vem uma var eh no minimo perigoso. Hehehe, e apesar de ser das antigas tem muitos que ainda nao se dao por conta, ou pior, como menciono no artigo, deixam sua aplicacao demasiadamente antiga, com versoes com bugs conhecidos, e listados ja na pcmaster ;-)
[4] Comentário enviado por greafine em 23/12/2004 - 18:31h
Olá.
Só para complementar o mesmo problema acontece tanto com POST assim como COOKIES, que devem ser verificados utilizando $_POST e $_COOKIE respectivamente.
[5] Comentário enviado por wellingtonaraujo em 23/11/2005 - 10:30h
caros amigos,
sou novo em php e não entendí os comentários dos senhores quanto ao $acao e $_POST!
Sei que $acao é uma variável e $_POST um metodo de envio de dados de um formulário (pelo menos eu acho)
Onde está a dúvida?
1) Bom, como devo tratar uma variável de maneira segura? $acao = "AÇÂO"; está errado? é inseguro? quando é inseguro e quando é seguro?
2) tenho um formulário de login com caixas de texto login e senha e um botao enviar que vai mandar pelo $_POST para outro formulário ou um arquivo.php para tratar o acesso. onde está a insegurança? como devo fazer então para ter segurança no envio?
Entendam, estou muito preocupado quanto a segurança, e gostaria de entender, tenho pouquissimo conhecimento em php, se puderem me enviar um exemplo de como tratar um form de login com os procedimentos seguros de envio até a gravação dos dados de maneira segura no banco (mysql) ficarei muito grato. aliás, já estou grato desde agora.
[6] Comentário enviado por edgar.frastrone em 24/05/2006 - 17:22h
Amigo, para você que está começando, desculpa mas tenho que mandar o link de outro site, mas voltando, tenho um exemplo muito bom para você validar seus forms: http://www.phpbrasil.com/scripts/script.php/id/700
esse script e muito bom!!