webForumDet fria alternativet

Skydda sida

4 svar · 1 229 visningar · startad av MHZ

MHZMedlem sedan apr. 200555 inlägg
#1

Har ändrat lite i koden. Hoppas jag jämför rätt för ett fullgott skydd med frågor osv. Kan det göras bättre vid frågor mm? Fått för mig att spara 'id' i en kaka borde vara ok.

Har en fil 'check_login-php' som ser ut enligt följande

<?php

if (empty(mysqli_real_escape_string($conn, $_COOKIE['sodastream'])))
	
   {
   header("location: login.php");
   exit;
   }

$idKaka = mysqli_real_escape_string($conn, $_COOKIE['sodastream']);

$login = 'SELECT * FROM members WHERE id = ?';

if($stmt = $conn->prepare($login))
	
   {   
   $stmt->bind_param('i',$idKaka);
   $stmt->execute();
   $stmt->store_result();
   $num_of_rows = $stmt->num_rows;
   $stmt->bind_result($id, $user, $pass, $niva, $email);

   while ($stmt->fetch())
	   
   $stmt->free_result();
   $stmt->close();
   }

?>

På de sidor jag vill skydda har jag detta beroende vilken nivå som ska få se den

<?php

include "/includes/check_login.php";

if (intval($idKaka != $id) || intval($niva) > 2)
	   
   {
   header("location: login.php");
   exit;
   }

?>
prplxrMedlem sedan juni 2012557 inlägg
#2

Spara användar-id i en kaka är nog bland det sämsta sättet jag sett att skydda sig på. Det är inte svårt alls att leta upp kakan och manipulera den och vips så är man inloggad som någon annan.

...om jag tolkat de små delar koden du delat med dig av rätt.

cascaMedlem sedan feb. 20003 262 inlägg
#3

prplxr skrev:

Spara användar-id i en kaka är nog bland det sämsta sättet jag sett att skydda sig på. Det är inte svårt alls att leta upp kakan och manipulera den och vips så är man inloggad som någon annan.

...om jag tolkat de små delar koden du delat med dig av rätt.

Ja, spara det som sessionskaka iaf. ;)

MHZMedlem sedan apr. 200555 inlägg
#4

Jag har ju funktionen att stanna inloggad och då måste väl en user spara en kaka i webbläsaren?

Att nån kan komma åt kakan känns svårt att skydda sig emot då.

Men en lösning för att inte kunna gissa sig till id mm kanske kan vara att skapa en random nyckel på ca 40 tecken för varje user och jämföra mot den.

greyhoundMedlem sedan maj 20031 399 inlägg
#5

MHZ skrev:

Jag har ju funktionen att stanna inloggad och då måste väl en user spara en kaka i webbläsaren?

Att nån kan komma åt kakan känns svårt att skydda sig emot då.

Men en lösning för att inte kunna gissa sig till id mm kanske kan vara att skapa en random nyckel på ca 40 tecken för varje user och jämföra mot den.

Läs på lite om Sessions http://php.net/manual/en/book.session.php

Här finns ett exempel på hur du använder sessioner http://php.net/manual/en/session.examples.basic.php

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb