Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zetto33

[Resolvido] Cookies (MD5 - Segurança)

Recommended Posts

[RESOLVIDO]

 

Olá, gostaria de saber se alguem tem alguma idéia de como proteger os dados contidos em um cookie, consultando o artigo: http://www.13dots.com/forum/index.php?showtopic=16156 verifiquei uma solução de alterar a string, password p.ex., por meio do md5(), porém como cruzarei os dados com o que consta no db?

 

Por mais que cadastre os dados no db já com o md5, então não existiria muita segurança, uma vez que o password que consta no db seria o do md5, exposto no cookie.

 

Alguém tem idéia de uma forma mais segura?

 

Aproveitando, gostaria de saber se teriam alguma sugestão boa para acessar o db por grupo de usuários?

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está equivocado.

O usuário não digitaria sua senha já em MD5-Hash,seu script faria isso por ele.

Se ele digitasse a senha dele em MD5-Hash,seria gerada outra hash e essa não 'bateria' com a existente em seu banco de dados (a digitada).

Veja:

<?php
function checaPw($pw, $pass){

	echo nl2br("\n"), str_repeat('-', 40) , nl2br("\n"),
	'Pass:', $pass, nl2br("\n"),
	'MD5-Hash pass:', $mhp =& md5($pass), nl2br("\n"),
	'Pw:', $pw, nl2br("\n"),
	'MD5-Hash pw:', $mhpw =& md5($pw), nl2br("\n");

	if($mhp == $mhpw) 
		echo 'Senhas iguais';
	else
		echo 'Senhas diferentes';

}
checaPw('password', 'password'); //Senhas iguais
checaPw(md5('password'), 'password'); //Senhas diferentes
?>

A insegurança de MD5-Hashes colocadas em cookie...é a de um usuario mal intencionado a pegar e com algum dos 'cracks' existentes na net,a 'quebrar'.

Sugiro que use sha1,ou outros algoritmos de criptografia mais eficientes (sha256 [implementavel]).

Dá uma procurada sobre isso que com certeza achará muito material.

 

Edit:exemplo horrendo em...

Compartilhar este post


Link para o post
Compartilhar em outros sites

andei testando de diversas formas, mas não rola:

senha: 12345678 = e9a0ed06126ec8f303ac6a969bb9156ae1f2b3af5525228ea7121addf9c8fb58

senha: 87654321 = e9a0ed06126ec8f303ac6a969bb9156ae1f2b3af5525228ea7121addf9c8fb58

 

qq senha de 8 caracteres fica redundante....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para inserir no db fiz assim:

include "_.php";
$username = $_POST["username"];
$password = hash('sha256','$_POST["password"]');
$sql = "INSERT INTO login (username, password) VALUES ('$username', '$password')";
$resultado = mysql_query($sql)

Pra consultar os dados:

include "_.php";
$username = $_POST["username"];
$password = hash('sha256','$_POST["password"]');
$reg = mysql_query("SELECT * FROM login WHERE username='$username' AND password='$password'");  
$total_reg = mysql_num_rows($reg);  
  if($total_reg==0){	  
	echo "Usuário ou Senha incorreto(s)";  
} else {	  
	setcookie("username", $username, time()+3600);	 
				setcookie("password", $password, time()+3600);
	header ("Location: inicio.php");
}

Mas não importa o que insira, o valor será sempre igual a " e9a0ed06126ec8f303ac6a969bb9156ae1f2b3af5525228ea7121addf9c8fb58 " então fica redudante....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho.Relativo a isso,não sei/não tenho como te ajudar.

Aqui as hashs geradas são diferentes.

Se a sha256 não está funcionando,é preferivel usar sha1 a md5.

E é legal você seguir o conselho do meu segundo post,você não vai ter que se preocupar com isso (existirão outras preocupações :x).

 

Olha:

<?php
echo hash('sha256', '87654321'), nl2br("\n"), hash('sha256', '12345678');
?>

Output:

e24df920078c3dd4e7e8d2442f00e5c9ab2a231bb3918d65cc50906e49ecaef4
ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f

Compartilhar este post


Link para o post
Compartilhar em outros sites

A seguinte linha estava errada, tinha colocado, equivocadamente, aspas na variável:

 

$password = hash('sha256', $_POST["password"]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.