Criptografia do método GET no PHP
Minha intenção neste artigo é mostrar que podemos suprir a deficiência de segurança no método GET. Muitas pessoas acabam usando o método POST por ser mais seguro e confiável que o método GET, mas às vezes, por exemplo, quando você pega um sistema pronto e precisa fazer uma manutenção, é melhor você continuar usando o método GET do que trocar tudo por POST.
Introdução
A minha intenção neste artigo é mostrar que podemos suprir a deficiência de segurança no método GET. Muitas pessoas acabam usando o método POST por ser mais seguro e confiável que o método GET, mas às vezes, por exemplo, quando você pega um sistema pronto e precisa fazer uma manutenção, é melhor você continuar usando o método GET do que trocar tudo por POST.
Vou fazer uma breve explicação de como funciona os métodos POST e GET.
Método GET:
Os argumentos são passados em forma de string pela URI (Uniform Resource Indicator) também conhecida como URL.
Exemplo:
http://seusite.br/pagina.php?argumento=valor" - GET
Para recuperar este valor no PHP, utilizamos as seguintes linhas de código:
Vou fazer uma breve explicação de como funciona os métodos POST e GET.
Método GET:
Os argumentos são passados em forma de string pela URI (Uniform Resource Indicator) também conhecida como URL.
Exemplo:
http://seusite.br/pagina.php?argumento=valor" - GET
Para recuperar este valor no PHP, utilizamos as seguintes linhas de código:
echo $_GET['argumento'];
Método POST:
Os dados do formulário são transmitidos diretamente ao endereço que constar da diretiva action= do formulário.
Exemplo:
<form action="http://seusite.br/pagina.php" method="POST">
<input name="argumento" type="text" value="valor">
<input name="enviar" type="submit" value="enviar">
</form>
<input name="argumento" type="text" value="valor">
<input name="enviar" type="submit" value="enviar">
</form>
Para recuperar este valor no PHP, utilizamos as seguintes linhas de código:
echo $_POST['argumento'];
Alguns sites mostram que o POST tem algumas vantagens em relação ao GET. Por exemplo:
POST é mais seguro que o GET porque as informações passadas pelos usuários nunca é visível na URL.
Veremos adiante que isso não é necessariamente uma vantagem do método POST, basta você "controlar" o seu método.
Legal o seu artigo =]
Mas gostaria de fazer um breve comentário. Fiquei analisando o código de encriptação por bastante tempo pra tentar entender com detalhes o que ele estava fazendo, mas então notei que seria injusto dizer que a solução é o md5. Na verdade o md5 é um "ator" do elenco de encriptação que desempenha um bom papel.
A lógica da criação dos packers/unpackers (base 16/hexadecimal) utilizando uma semente aletória em cima de uma base hexadecimal foi uma ótima sacada - Pois mata dois coelhos com uma cajadada só:
- O md5 empacota e desempacota o texto com o auxilio da funcao mt_rand(), que não utiliza a libc que por sua vez geralmente retorna sementes meio viciadas.
- O metodo de empacotamento/desempacotamento faz a colisão tender a zero.
Se você for o autor desse algoritmo, parabéns
[]'s