Jump to content


Photo

Problemas Com Cookie


  • Faça o login para participar
7 replies to this topic

#1 beto15

beto15

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 24/04/2006, 13:59

Pessoal, to com um problemão...

Fiz uma autenticação via cookie porém não está funcionando. Se editar o login ele continuara funciondo. Parece que a autenticação não existe( desde que o cookie user continue ).

<?
include("db.php");
$user = @$_COOKIE["user"];
$pass = @$_COOKIE["pass"];
$id = @$_COOKIE["id"];

$query = mysql_query("SELECT * FROM users WHERE BINARY id='$id' AND user='$user' AND pass='$pass' LIMIT 1");
if(!$query){
setcookie("id");
setcookie("user");
setcookie("pass");
header("Location: /");
}
?>

Acho que está com um bug.

Alguém saberia me dizer como posso fazer isso de forma segura? para qualquer tipo de alteração o cookie parar de funcionar e a pessoa ter que re-logar no sistema?

Valew

#2 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 24/04/2006, 14:21

www.php.net/setcookie


Leia, que você entende... O problema está na criação do cookie.

#3 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 24/04/2006, 14:22

Com sessão eu faço assim:
<?
if( (!isset($_SESSION["id_login"]) || !isset($_SESSION["login"]) )
{
echo '
	   <script>
		location.href="login.php";
	   </script>
	 ';
}
?>
Creio que seja a mesma idéia para cookies também...

Flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#4 beto15

beto15

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 24/04/2006, 14:37

Fala pessoal...

Inu Tipo, criação do cookie está certa.

<?php
setcookie("user", "$login");
setcookie("pass", "$pass");
setcookie("id", "$id");
?>

Aquele código que eu coloquei seria para se não estivesse correto, ele eliminar os cookies.(Que obviamente já estaria criados, mas caso algum usuário mal intencionado quissesse mudar, ele apagar todos os cookies e o usuário teria que re-logar no sistema)

Frenesi Vou tentar fazer para ver o que acontece.... :D

O que não entendo é que aparentemente a lógica está certa, "se query fosse diferente daquilo, elimina os cookies"...

vou tentar mais algumas tentativas...

Se alguém tiver mais alguma dica ;)

Flw

Edição feita por: beto15, 24/04/2006, 14:38.


#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 24/04/2006, 15:11

Beto, eu uso COOKIE no meu sistema de autenticação
Tenta tirar o @.
testa ae
flws

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 24/04/2006, 15:20

Beto, eu uso COOKIE no meu sistema de autenticação
Tenta tirar o @.
testa ae
flws

O arroba simplesmente ignora a mensagem de erro que a expressão possívelmente pode causar.

Leitura: Operadores de controle de erro

Flws...
B)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 24/04/2006, 15:32

<?php
/*******************************
*	
*	04/11/2005
*	
*	descrição
*	Atribui cookies
*	Apaga cookies
*	Retorna valor de variaveis em cookies
*	
*	métodos PUBLIC:
*	SetCookie():string
*	UnSetCookie():string
*	GetCookie():string
*	
*******************************/
Class Cookie{

	/*******************************
	*	
	*	04/11/2005
	*	PUBLIC:string
	*	
	*	descrição:
	*	Atribui valores às variaveis de cookies
	*	
	*	@PARAM	variavel:string
	*	@PARAM	valor:string
	*	@PARAM	tempo:int
	*	
	*******************************/
	function SetCookie(	$variavel,
						$valor,
						$tempo=null){
								
		global	$ConfiPst;
		setcookie ($variavel	, $valor	, $tempo	,$ConfiPst["dirRel"]);
		return	$valor;
	}
	
	/*******************************
	*	
	*	04/11/2005
	*	PUBLIC:string
	*	
	*	descrição:
	*	Apaga valores de variáveis de cookies
	*	
	*	@PARAM	variavel:string
	*	
	*******************************/
	function UnSetCookie($variavel){
		setcookie ($variavel	, "",time()-999999999999);
		return	$valor;
	}
	
	/*******************************
	*	
	*	04/11/2005
	*	PUBLIC:string
	*	
	*	descrição:
	*	Retorna valor de variaveis em cookies
	*	
	*	@PARAM	variavel:string
	*	
	*******************************/
	function GetCookie($variavel){
		return $_COOKIE[$variavel];
	}
}
?>

$Cookie = new Cookie();
$Cookie->SetCookie("login",$login);
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#8 beto15

beto15

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado

Posted 26/04/2006, 00:00

goiaba2000 Valew pela Class, mas o erro continua. Ele loga no sistema e depois com um editor de cookie eu coloco um outro usuário e ele entra normalmente.

Teria como comparar o ID com o login?

Se tivesse ficaria simples, pois se aquele ID da tabela fosse diferente daquele login da mesma tabela, daria erro.

Mais alguém??

Pessoal, ainda não consegui resolver o problema... será que alguém poderia me ajudar??




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq