Avatar billede domaz.dk Novice
23. januar 2004 - 07:57 Der er 7 kommentarer og
2 løsninger

session sikkert?

Jeg ville lige høre jer af om det her login system er sikkert, eller om man på nogen måde kan komme ind ved f.eks. at starte de session's på en anden side??

Den fungerer sårn at:

//index.php

<?php
session_start();
?>
<html><head><title>hej</title></head><body>
<?php
if ($s_brugernavn && $s_password) {
echo "Du er logget ind som $s_brugernavn";
} else {
echo "<form method="post" action="login.php"><input type="text" name="brugernavn"><input type="password" name="password"><input type="submit" value="login"></form>";
}
?>


//login.php

$brugernavn = $_REQUEST["brugernavn"];
$password = $_REQUEST["password"];

$query = mysql_query("SELECT id, brugernavn, password FROM community WHERE brugernavn='$brugernavn' && password='$password'");
if (mysql_num_rows($query) == "0") {

$echo "Forkert brugernavn eller password\n";

} else {

while($r = mysql_fetch_array($query)) {
       
$s_id = $r["id"];
$s_brugernavn = $r["brugernavn"];
$s_password = $r["password"];
       
}

session_register ("s_id");
session_register ("s_brugernavn");
session_register ("s_password");

header("location:index.php");

}
Avatar billede jakobclausen Nybegynder
23. januar 2004 - 08:21 #1
Jeg vil helt sikkert mene at session er sikkert, da det ikke blot er noget der ligger på klientens maskine, men på serveren.

Jeg har engang hørt omtalt at det skulle kunne lade sig gøre også at bryde en session. Men er der efterhånden noget idag som ikke kan brydes - Session er efter min mening i hvertfald noget af det mest sikre du kan bruge idag.
Avatar billede squashguy Nybegynder
23. januar 2004 - 08:42 #2
Når vi nu snakker sikkerhed. Hvis du ikke har hørt om "magic quotes", så prøv at slå det op, og overvej hvad det ville gøre ved dit loginsystem, hvis ikke denne feature var slået til..

username=admin'#
Avatar billede Slettet bruger
23. januar 2004 - 09:01 #3
Og overvej, hvad der vil ske, hvis register_globals lige pludselig blev slået fra.

Du bør skifte over til at bruge $_SESSION-arrayet i stedet for at lave session_register() af dine variable.
Avatar billede domaz.dk Novice
23. januar 2004 - 10:36 #4
sandbox <<< Hvordan gør man så det? hvis du havde et link til forklaring af session array ville det bare være perfekt ;)
Avatar billede detox Nybegynder
23. januar 2004 - 12:14 #5
Det er faktisk meget enkelt, med $_SESSION arrays. I øvrigt behøver du ikke en while løkke når der kun er et resultat:

$brugernavn = $_REQUEST["brugernavn"];
$password = $_REQUEST["password"];

$query = mysql_query("SELECT id, brugernavn, password FROM community WHERE brugernavn='$brugernavn' && password='$password'");
if (mysql_num_rows($query) == 1) {
  $r = mysql_fetch_assoc($query);
  $_SESSION["s_id"] = $r["id"];
  $_SESSION["s_brugernavn"] = $r["brugernavn"];
  $_SESSION["s_password"] = $r["password"];
  header("location:index.php");
} else {
  $echo "Forkert brugernavn eller password\n";
}
Avatar billede detox Nybegynder
23. januar 2004 - 12:15 #6
$echo == echo ;o)
Avatar billede Slettet bruger
23. januar 2004 - 21:35 #7
Og på de andre sider skal du bare bruge $_SESSION["s_brugernavn"] i stedet for $s_brugernavn og tilsvarende for de andre.
Avatar billede domaz.dk Novice
24. januar 2004 - 11:47 #8
okay... tak for hjælpen... detox og sandbox.... gi' lige et svar så i kan få jeres points...
Avatar billede Slettet bruger
24. januar 2004 - 13:24 #9
Jeps. Her er mit.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester