webForumDet fria alternativet

Skydda sida

PHP

4 svar · 1 231 visningar · startad av MHZ

Medlem sedan apr. 200555 inlägg
Frågan#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;
   }

?>
Medlem sedan juni 2012581 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.

Medlem sedan feb. 20005 891 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. ;)

Medlem 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.

Medlem sedan maj 20031 472 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

250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)