login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hoe beveilig ik een sessie (Opgelost)

Offline Jesse2303 - 19/02/2007 14:39
Avatar van Jesse2303Onbekend Ik zou graag mijn sessie beveiligen zodat er vb:
Niemand op iemand anders account geraakt.
Dat er niks word gepost onder andere naam

15 antwoorden

Gesponsorde links
Offline Thomas - 19/02/2007 14:42 (laatste wijziging 19/02/2007 14:43)
Avatar van Thomas Moderator Euh, er komt niemand aan een sessie, dus in die zin is die "veilig".

De verwijzing naar een sessie (via cookie of URL) is echter niet veilig als je hier geen additionele maatregelen treft, zoals bijv. bijhouden met welk IP iemand is aangemeld. Dan is het (tot op zekere hoogte) weer wel "veilig".

Je sessie is zo veilig als je code die je sessie vult / wijzigt / controleert.

EDIT: Oh, en het helpt ook enorm als register_globals UIT staat, maar dit is al een hele tijd standaard het geval.
Offline Jesse2303 - 19/02/2007 14:54
Avatar van Jesse2303 Onbekend Snap je nog niet zo goed...
Op sommige turtorials geven ze scriptjes waarbij je duidelijk ziet dat hij beveiligd is
Offline slabbetje - 19/02/2007 14:57
Avatar van slabbetje Nieuw lid ik snap ook niet helemaal wat je bedoeld,
maar ik heb ergens gelezen dat een sessie tijdelijk word opgeslagen op je computer en binnen zoveel tijd weer verwijderd en dat is niet aftelezen via cookies enz.
Offline Jesse2303 - 19/02/2007 14:59
Avatar van Jesse2303 Onbekend Nee , de sessie word opgeslagen op de HDD van de host
Offline Thomas - 19/02/2007 14:59
Avatar van Thomas Moderator
Citaat:
Op sommige turtorials geven ze scriptjes waarbij je duidelijk ziet dat hij beveiligd is
Nou, dan gebruik je die toch? Vanwaar je vraag dan?

Citaat:
maar ik heb ergens gelezen dat een sessie tijdelijk word opgeslagen op je computer en binnen zoveel tijd weer verwijderd en dat is niet aftelezen via cookies enz.
Dat heb je dan verkeerd gelezen. De gegevens van een sessie staan op de webserver opgeslagen. Vandaar dat deze van zichzelf "veilig" is.

Lees de tutorial over sessies nog maar eens...
Offline delta_004 - 19/02/2007 15:01 (laatste wijziging 19/02/2007 15:30)
Avatar van delta_004 Onbekend
  1. <?
  2. $_SESSION['gebruikersnaam'] = $_POST['gebruikersnaam'];
  3. $_SESSION['wachtwoord'] = md5($_POST['wachtwoord']);
  4.  
  5. function in ($input){
  6. return htmlspecialchars(addslashes($input),ENT_QUOTES);
  7. }
  8. function uit ($input){
  9. return stripslashes($input);
  10. }
  11. function is_ingelogd() { // Functie
  12. // Bestaan de Sessies?
  13. if(isset($_SESSION['gebruikersnaam']) && isset($_SESSION['wachtwoord'])) {
  14. // Ja
  15. $sql = mysql_query("SELECT wachtwoord FROM leden WHERE gebruikersnaam = '".in($_SESSION['gebruikersnaam'])."'"); // Query
  16. if(mysql_num_rows($sql)) { // Bestaat Lid?
  17. if(uit(mysql_result($sql, 0)) == $_SESSION['wachtwoord']) {
  18. // DB wachtwoord == Sessie
  19. return true;
  20. // Ingelogd
  21. } else {
  22. return false;
  23. // Eventueel Ban want dit is meestel Hacking
  24. }
  25. } else {
  26. return false;
  27. }
  28. } else {
  29. // Neee
  30. return false;
  31. }
  32. }
  33. if(is_ingelogd()) {
  34. } else {
  35. }
  36. ?>

Niet getest maar hoort te werken:)
Offline Jesse2303 - 19/02/2007 15:12
Avatar van Jesse2303 Onbekend Heb die al ooit es geprobeerd werkt niet
Offline Thomas - 19/02/2007 15:27
Avatar van Thomas Moderator Het script van Delta_004 lijkt mij vatbaar voor MySQL-injection.
Je kunt in $_POST['gebruikersnaam'] van alles zetten.

De reden dat het script "veilig" is, is de wachtwoord-controle van regel 11. De query (regel 9) lijkt me echter niet veilig.
Offline delta_004 - 19/02/2007 15:28 (laatste wijziging 19/02/2007 15:30)
Avatar van delta_004 Onbekend Nee ik zelf gebruik functies in en uit(), maar hier is het inderdaad erg vatbaar ja:)

En jesse die kan je niet getest hebben want die heb ik net zelf gemaakt, wijsneus

Edit: script is veilig aangepast
Offline Jesse2303 - 19/02/2007 16:02
Avatar van Jesse2303 Onbekend stond op een andere webmaster site juist zelfe gemaakt door pixel 
Offline delta_004 - 19/02/2007 16:06 (laatste wijziging 19/02/2007 16:06)
Avatar van delta_004 Onbekend Link aub, Het zouw kunnen want alle controles worden op die manier gemaakt

Het zouw toeval moeten zijn want ik heb het niet gejat ofzo en nergens gepost
Offline timo - 19/02/2007 16:50
Avatar van timo PHP ver gevorderde wat in principe kan (ik heb het wel eens geprobeerd) is dat je het volgende doet:
je weet de PHPSESSID van de cookie op een bepaalde manier, hierna kan je in de adresbalk op de site waar je de cookie wil dit doen:
javascript:void(document.cookie="PHPSESSID={nummer}") en voila, je hebt een cookie en de server zal denken dat jij die sessie moet kunnen gebruiken..

hierom maak ik altijd een array van mijn sessie en zet daar het ip in..
Offline Gerard - 19/02/2007 17:07
Avatar van Gerard Ouwe rakker Inderdaad, een sessie is een eenmalig iets. Wanneer de gebruiker de volgende keer op de website komt zal hij een nieuwe sessie krijgen van de server. Je kan dus best de sessie koppelen aan het ip van de bezoeker. Je krijgt dan alleen problemen met mensen die werken vanuit een corporate omgeving met meerdere internetverbindingen waarbij elke request een ander ip kan zijn. Maar dat is niet echt iets om je druk over te maken dus.
Offline Jesse2303 - 20/02/2007 08:01
Avatar van Jesse2303 Onbekend @delta nee dit mag niet en anders krijg ik waarschuwing
Offline delta_004 - 20/02/2007 08:34 (laatste wijziging 20/02/2007 14:22)
Avatar van delta_004 Onbekend (Bericht zelf verwijdert)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s