quinta-feira, 24 de julho de 2014

#ALTERAÇÃO DE POSTAGEM - ALTERANDO DADOS COM PHP

Olá amigos do blog, 

Vou alterar a postagem realizada no dia 14/04/2014 - cujo o título é: COMEÇANDO O PHP DE FORMA SIMPLES E FÁCIL – PARTE.07 (ALTERANDO DADOS). Devido a uma falha de segurança, que poderá ocorrer durante a transmissão de parâmetros entre o formulário HTML e o PHP, no processo de alteração de dados.
 
Abaixo segue o script utilizado na postagem:

<?php
 $codigo=5;
 $conexao=mysql_connect("localhost","root","123");
  mysql_select_db("escola");
 
   //REALIZANDO A PESQUISA NA TABELA  
   $pesquisa=mysql_query("select * from alunos where codigo='$codigo'");
   $linha=mysql_fetch_array($pesquisa);
  
    //DEFINIDO OS DADOS QUE SERÃO ALTERADOS
    $codigo=$linha["codigo"];   
    $nome=$linha["nome"];
    $endereco=$linha["endereco"];
    $email=$linha["email"];
    $nascimento=$linha["data_nascimento"];
   
    //CRIANDO O FORMULÁRIO
     echo"Alterar dados do Aluno:<br>
  
 <form method=\"post\" action=\"gravar_alteracao.php?codigo=$codigo\">
  Nome do Aluno(a)<input type=\"text\" name=\"nome\" size=\"20\" value=\"$nome\"><br>
   Endereço do Aluno(a)<input type=\"text\" name=\"endereco\" size=\"25\" value=\"$endereco\"><br>
  E-mail do Aluno(a)<input type=\"text\" name=\"email\" size=\"30\" value=\"$email\"><br>
  Data de Nascimento do Aluno(a)<input type=\"text\" name=\"data\" size=\"10\" value=\"$nascimento\"><br>
    <input type=\"submit\" value=\"Gravar\"><br>
 </form>";

?>

Bem, na linha:

<form method=\"post\" action=\"gravar_alteracao.php?codigo=$codigo\">

Utilizei a url para passar uma informação valiosa, que permitir identificar qual registro desejo alterar ->  codigo=$codigo.

Essa maneira permite que possa ocorrer uma injeção de códigos SQL e dependendo do nível de conhecimento do invasor, recuperar informações valiosas das tabelas do banco de dados.

Uma solução simples e fácil, seria enviar uma variável no próprio código do formulário, junto com as demais variáveis do formulário, dessa forma:
 Remover da tag form codigo=$codigo
 Adicionar

<input type=\"hidden\" name=\"codigo\" value=\"$codigo\">

No script responsável por gravar as alterações (gravar_alteracao.php), alterar:

A linha

$codigo=$_GET[“codigo”];

Substituir por:

$codigo=$_POST[“codigo”];

Fácil, somente isso para resolver em parte o problema.

Nenhum comentário:

Postar um comentário