Bom pessoal,desenvolvi uma página para exclusão de registro no MYSQL por meio do PHP e ne método GET.
O script está rodando muito bem,porém há uma falha de segurança gravissíma. Se eu colocar na URL o código do id do usuário e apertar enter,posso excluir sem nem mesmo clicar para excluir. O código é esse e que é usado no GET:
lista_usuario.php?id_usuario=1
Basta eu olhar a lista dos usuários,saber o id e fazer nesse método que consigo excluir qualquer registro pela URL.
Usei o "md5" para criptografar os dados na hora em que exibo,ai fica uma coisa assim:
Porém, o meu tipo de registro do id do usuário é em apenas numeros. E com o MD5,não consigo gravar no BD.
Como posso fazer para corrigir tais problemas?
Usar o MD5 criptografar na URL, ou então fazer algum outro método?O que quero é simplesmente deletar com segurança,e não dando brechas na URL,mesmo sendo GET.
Acho que é isso.Aqui eu posto meu código com as configurações.
PÁGINA ONDE EXIBO OS DADOS DO SQL E DELETO:
AQUI É A MINHA CLASSE ONDE ESTÃO AS FUNÇÕES PARA DELETAR E OUTRAS:
<?php
require ('db.php');
class User{ //Definindo a classe User
var $id_usuario;
var $nome;
var $login;
var $senha;
var $esta_salvo;
function __construct($id_usuario){ //Função com base na chave primária do id_usuario
$sql = "SELECT nome, login, senha FROM usuarios WHERE id_usuario = '$id_usuario';";
$query = mysql_query($sql);
if($query->mysql_num_rows>0){
$info = $query->mysql_fetch_object($sql);
$this->nome = $info->nome;
$this->login = $info->login;
$this->senha = $info->senha;
$this->id_usuario = $id_usuario;
}
}
function lista_user(){
$users = $_REQUEST['id_usuario'];
if($users !=""){
//$users = md5($this->id_usuario);
$sql = mysql_query("DELETE FROM usuarios WHERE id_usuario = '$users'");
if($sql){
echo "<div id=content><script type=text/javascript>showDialog('SUCESSO!','<h3>SUA REQUISIÇÃO FOI BEM EXECUTADA.</h3>','success')</script></div>";
echo "<p class=ttp><strong>DADOS DELETADOS CORRETAMENTE!!!</strong></p>";
}else{
echo "<p class=ttp>ERRO AO DELETAR CADASTRO!!!</p>";
}
}
}
}
?>
Pergunta
Carlohcs
Bom pessoal,desenvolvi uma página para exclusão de registro no MYSQL por meio do PHP e ne método GET.
O script está rodando muito bem,porém há uma falha de segurança gravissíma. Se eu colocar na URL o código do id do usuário e apertar enter,posso excluir sem nem mesmo clicar para excluir. O código é esse e que é usado no GET:
Basta eu olhar a lista dos usuários,saber o id e fazer nesse método que consigo excluir qualquer registro pela URL. Usei o "md5" para criptografar os dados na hora em que exibo,ai fica uma coisa assim: Porém, o meu tipo de registro do id do usuário é em apenas numeros. E com o MD5,não consigo gravar no BD. Como posso fazer para corrigir tais problemas? Usar o MD5 criptografar na URL, ou então fazer algum outro método?O que quero é simplesmente deletar com segurança,e não dando brechas na URL,mesmo sendo GET. Acho que é isso.Aqui eu posto meu código com as configurações. PÁGINA ONDE EXIBO OS DADOS DO SQL E DELETO: AQUI É A MINHA CLASSE ONDE ESTÃO AS FUNÇÕES PARA DELETAR E OUTRAS:Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.