[php] idee voor beveiliging

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • thomasfilius
  • Registratie: Januari 2001
  • Laatst online: 16-09 13:10

thomasfilius

zappaeske strapatsen

Topicstarter
Al een tijd lang gebruik ik een zelfgemaakte class users voor verificatie van gebruikers. Hierin zitten 2 belagrijke functies namelijk:

* verify (gebruikersnaam, wachtwoord)
* verified ()

Werking is simpel:
verify controleerd wachtwoord en gebruikersnaam
verified kijkt of gebruiker is ingelogd

Hierbij slaat verify alle gegevens op in de class en verified controleerd of deze nog wel goed zijn. Dit lijkt mij gevoelig voor session-hacking, dus daarom is mijn idee het volgende:

Ik laat verify niet meer zijn gegevens in de class opslaan maar stuur een cookie naar de gebruiker met een uniek nummer. Verified controleerd dit nummer met de database. Als dit klopt hebben we nog steeds met dezelfde gebruiker te maken en mag hij door voor de wasmachine.

Mijn vraag: is deze redenering correct? Of is dit nog steeds gevoelig?

Watch out where the huskies go an' don't you eat that yellow snow!


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Als je er een ip-adres aan toevoegt in de database die je controleert met REMOTE_ADDR is het redelijk veilig.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 08:35
Dit is nog steeds gevoelig want dat nummer kan nog steeds geraden worden. Je kan het natuurlijk heeeeel erg moeilijk maken >:) , maar het feit blijft dat je het nummer kan raden.

PS de perfecte beveiling bestaat niet :|

Acties:
  • 0 Henk 'm!

Verwijderd

Hoe communiceer je in de huidige situatie het gebruikersnaam en wachtwoord? Stuur je dat heen en weer of sla je dat op in cookies, op de HD van de webserver (sessie), ... ?

Dit is btw nog steeds gevoelig voor session stealing. Als je het unieke nummer hebt hoef je niet eens meer in te loggen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Wat jij nu voorsteld is eigenlijk precies de werking van een Sessie. Hierbij wordt de sessie ID ook in een cookie opgeslagen ([mierneukindekmode]of als parameter meegestuurd [/mierneukindekmode]). Dit zelf nog een keertje extra doen heeft dus geen enkele invloed op de veiligheid van je systeem.

Waar je beter naar zou kunnen kijken is andere manieren van uniek identificeren. Sla bijvoorbeeld ook het IP en de user-agent op. Zodra dezen niet overeenkomen is de sessie ongelding.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

bigtree schreef op 14 mei 2003 @ 13:23:
Als je er een ip-adres aan toevoegt in de database die je controleert met REMOTE_ADDR is het redelijk veilig.
Totdat je achter een mega-proxy zit zodat REMOTE_ADDR hetzelfde blijft...

Acties:
  • 0 Henk 'm!

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 05-08 13:55
Verwijderd schreef op 14 May 2003 @ 13:25:
Totdat je achter een mega-proxy zit zodat REMOTE_ADDR hetzelfde blijft...
Of je een modemer aan de haak hebt :)

Acties:
  • 0 Henk 'm!

  • thomasfilius
  • Registratie: Januari 2001
  • Laatst online: 16-09 13:10

thomasfilius

zappaeske strapatsen

Topicstarter
Ja ik weet dat de 'perfecte' beveiliging niet bestaat, maar de duimschroeven flink aandraaien is nooit een slecht idee. Maar idd, eigenlijk is het een lomp idee als je bedenkt dat ik gewoon m'n session_id md5 en in de cookie zet.

Verder controleer ik het ip adres en user-agent al in m'n zelfgemaakte session class.

De reden dat ik dit doe is dat ik usr + md5(pwd) liever niet in m'n session zet. Just in case zegmaar. Dan maar gewoon een boolean in m'n class die mij verteld gebruiker geverifieerd is.

[ Voor 5% gewijzigd door thomasfilius op 14-05-2003 13:33 ]

Watch out where the huskies go an' don't you eat that yellow snow!


Acties:
  • 0 Henk 'm!

Verwijderd

thomasfilius schreef op 14 May 2003 @ 13:33:
[..]
De reden dat ik dit doe is dat ik usr + md5(pwd) liever niet in m'n session zet. Just in case zegmaar. Dan maar gewoon een boolean in m'n class die mij verteld gebruiker geverifieerd is.
Hoe onthou je dan die gegevens (usr+pwd)? Sla je gewoon de boolean die aangeeft of de gebruiker geverifieerd is in de sessie op?

Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
Verwijderd schreef op 14 May 2003 @ 13:25:
[...]


Totdat je achter een mega-proxy zit zodat REMOTE_ADDR hetzelfde blijft...
Kan je dan niet met javascript het ip adres controleren en vervolgens vergelijken met het ip adres wat in de database zit(dees is gewijzigd op het laatste moment dat men heeft ingelogd). Hierbij ook nog het unieke nummer die ook bij de laatste inlog in de dbase word gezet, in een session en in een cookie.

Is dit veilig?

Acties:
  • 0 Henk 'm!

  • lytjepole
  • Registratie: September 2000
  • Laatst online: 17-09 22:17

lytjepole

Schier?

ik zou ook niet weten wat een wactwoord in een session zou moeten, user-id oid zou voldoende moeten zijn

[Did you know... ... that 35% of statistics are made-up?]


Acties:
  • 0 Henk 'm!

Verwijderd

EnsconcE schreef op 14 May 2003 @ 23:03:
[...]Kan je dan niet met javascript het ip adres controleren en vervolgens vergelijken met het ip adres wat in de database zit(dees is gewijzigd op het laatste moment dat men heeft ingelogd). Hierbij ook nog het unieke nummer die ook bij de laatste inlog in de dbase word gezet, in een session en in een cookie.

Is dit veilig?
Wat ingewikkeld allemaal... en dat alleen voor die eenzame modemer waarvan de verbinding verbroken is? Laat 'm lekker opnieuw inloggen 8)

(hoe ingewikkelder het wordt, hoe meer kans je hebt op lekken. daarnaast hoeft niet iedere browser javascript of cookies aan te hebben staan)

[ Voor 12% gewijzigd door Verwijderd op 15-05-2003 21:09 ]

Pagina: 1