MHZMedlem sedan apr. 200555 inlägg
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
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
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
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
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