[PHP] Is dit een veilige manier van sessies gebruiken?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voor een inlogsysteem gebruik ik sessies. En wel op deze manier:
PHP:
1
2
3
4
5
6
7
8
$query2 = mysql_query ("select * from gebruiker where gebruiker = '$gebruiker' AND wachtwoord = '$wachtwoord'"); 
    $Results2 = mysql_num_rows($query2); 
    
        if ($Results2 == '1') 
{ 
            $sid = session_id(); 
      session_register("sid"); 
}

Boven aan de pagina die beveiligd moet worden zet ik (behalve session_start())
PHP:
1
2
3
4
5
6
7
8
9
if ($sid == session_id())
{
*veilige content*
}

else
{
echo "eerst inloggen aub";
}


Hij registreerd de session id dus in een andere variable. Die hij vervolgens weer controleerd. Dit leek mij een best veilige methode omdat de session id niet te raden is, dus zelfs als staan de globals on, dat je dan niet het probleem hebt dat iemand dit doet:

www.domein.nl/veiligepagina.php?sid=1

Is dit ook echt een veilige methode, of juist niet? :?

Acties:
  • 0 Henk 'm!

  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 16-06 11:48

Shift

[] Dual crazy []

Je kan beter de sid variable in een sessie stoppen dat is veiliger dan dit. En niet in de URL verwerken.

[ Voor 17% gewijzigd door Shift op 08-04-2003 14:24 ]


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Niet echt. Ten eerste check je vrij magertjes op je query. . vraag bij het doen van die query bv weer de gebruikersnaam / wachtwoord op die je probeert te queryen en kijk over deze precies hetzelfde zijn ( is al veiliger ).

Daarnaast geef je zelf aan dat het met wat trucerij omzeild kan worden :)


Dit : PHP: Variabelen die van buitenaf komen. *lezen!* is denk ik ook wel relevant voor jou ;)

[ Voor 16% gewijzigd door Basszje op 08-04-2003 14:27 ]

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • cenix
  • Registratie: September 2001
  • Laatst online: 16-09 20:24
$blaat = "authorized";
doe een session_register("blaat");

en bij het testen of men ingelogd is

if (IsSet($_SESSION['blaat'] == "authorized") && IsSet(session_id()) { /* veilige content */ }

[ Voor 20% gewijzigd door cenix op 08-04-2003 14:29 ]


Acties:
  • 0 Henk 'm!

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

anders kijk even hier voor meer info?

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Basszje schreef op 08 April 2003 @ 14:23:
Daarnaast geef je zelf aan dat het met wat trucerij omzeild kan worden :)
Dat van die controle op naam en wachtwoord heb je gelijk, dat kan wat uitvoeriger. Maar ik geef juist aan dat de standaard trucerij niet werkt ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Basszje schreef op 08 April 2003 @ 14:23:
vraag bij het doen van die query bv weer de gebruikersnaam / wachtwoord op die je probeert te queryen en kijk over deze precies hetzelfde zijn ( is al veiliger ).
Deze snap ik niet helemaal, als je er voor zorgt dat de input van gebruikersnaam/wachtwoord goed gecheckt wordt (zoals dat altijd hoor) dan heeft dit geen nut meer volgensmij? Of op welke manier wel?

Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Verwijderd schreef op 08 april 2003 @ 14:41:
[...]


Deze snap ik niet helemaal, als je er voor zorgt dat de input van gebruikersnaam/wachtwoord goed gecheckt wordt (zoals dat altijd hoor) dan heeft dit geen nut meer volgensmij? Of op welke manier wel?
Ken jij het verhaal van SQL insertions en dat soort irritante dingetjes :? Nou ja dat is toch niet echt mogelijk ( dacht ik ) vanwege de ' ' 's om de variabelen heen.
Maar wellicht iets anders / zekerheid.

Als dus iemand in de var van gebruikernaam / wachtwoord iets weet te proppen waardoor je b.v. meerdere niet correcte rows terugkrijgt dan logt zo iemand vervolgens wel gewoon in .

Tis niet echt een kwestie van nut, maar meer van extra zekerheid imo :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

Verwijderd

zoiets dacht ik al, maar dat is dus een soort zwaktebod...

De boel zo brak in elkaar zit dat je er dingen in kan krijgen die niet horen dan gaat die laatste check ook niet meer afdoende zijn waarschijnlijk.
Beter is het probleem gewoon bij de input aanpakken. Zo ingewikkeld is het niet om de input te checken op bijvoorbeeld alleen alfanumerieke karakters

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Shift schreef op 08 April 2003 @ 14:23:
Je kan beter de sid variable in een sessie stoppen dat is veiliger dan dit. En niet in de URL verwerken.
Er staat toch ook

PHP:
1
session_register("sid");

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 08:43
Ik neem aan dat je register_globals op off hebt? Gebruik dan ipv het session_register $_SESSION["sessionding"] = $sid; bijv :)

Ten tweede, geen " enz. om variabeles heen dus, die query, maak bij die variabeles iets ala dit:
PHP:
1
<?php $quer = "SELECT * FROM bla bla WHERE username = '" . $username . "' BLA BLA "; ?>

veeeeel netter ;)

Verder snap ik dat sid in een sessie snappen niet 100 %, want ik denk dat als het op veiligheid aankomt enzo dat die sessie id in een variabele niet helemaal 'snugger' is :)

Verder, md5 voor de wachtwoorden enz.. Wat je ook kan doen is per sessie een md5 token generaten, in de DB zetten, en dat controleren of die session id wel in de db zit, en of die bijvoorbeeld bij die 'userclient' hoort, controleren op USER_AGENT enz :)

|>


Acties:
  • 0 Henk 'm!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08 21:02
Euhm, worden sessies niet altijd naar /temp geschreven en heeft niet iedereen daar lees en schrijf rechten? Wil je het beter doen dan moet je het sessie path ook van apache aanpassen.

Ik zeg erbij: Ik heb de klok horen luiden, maar ....

43% of all statistics are worthless


Acties:
  • 0 Henk 'm!

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 12-09 17:04
Euhm... Je kan toch ook beter MD5 gebruiken? Is het weer een stukje veiliger :)

Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Verwijderd schreef op 08 April 2003 @ 16:12:
zoiets dacht ik al, maar dat is dus een soort zwaktebod...

De boel zo brak in elkaar zit dat je er dingen in kan krijgen die niet horen dan gaat die laatste check ook niet meer afdoende zijn waarschijnlijk.
Beter is het probleem gewoon bij de input aanpakken. Zo ingewikkeld is het niet om de input te checken op bijvoorbeeld alleen alfanumerieke karakters
Ja zeker, maar beter dubbel safe dan 1 keer sorry ;)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

Verwijderd

Dat betekent dus dat je er niet 100% zeker van bent wat je in je query stopt.... geen goed teken lijkt me :/
Immers als je daarvan zeker was zou je geen check achteraf doen :P (zowiezo raar dan lijkt mij het kwaad al geschied)
Pagina: 1