hoe veilig zijn cookies?

Pagina: 1
Acties:
  • 225 views sinds 30-01-2008
  • Reageer

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
ik heb gesearched maar kon mijn antwoord niet vinden

kijk, je maakt een login systeem die werkt met cookies, en je zet er ook een user-level in voor welke gebruiker iets wel en niet mag op de site.

is zo'n cookie dan eventueel te faken, dus dat je zelf een cookie op je pc neerzet waarin staat dat jij user-level 6 heb ofzo? of is zelf cookies maken niet mogelijk?

Computers ain't that smart, Whatever man built could be taken apart


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

niet dat soort info opslaan in een cookie

Doet iets met Cloud (MS/IBM)


  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
D2k schreef op 03 september 2002 @ 15:01:
niet dat soort info opslaan in een cookie
maar in een session?

zeg dan even hoe het dan volgens jouw moet?

sessions werken ook met cookies toch?

dus dan zouden ze alsnog te faken zijn?

Computers ain't that smart, Whatever man built could be taken apart


  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

D2k schreef op 03 september 2002 @ 15:01:
niet dat soort info opslaan in een cookie
Dat is wel heel kort door de bocht...

Kneuter: Cookies zijn niet veilig en eenvoudig te faken. Aan de andere kant zijn ze in sommige situaties wel heel erg handig. Je kunt er, als je 't perse in een cookie wilt doen, gewoon een vorm van encryptie overheen halen.

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

KnEuTeR schreef op 03 september 2002 @ 15:03:
[...]

maar in een session?
zeg dan even hoe het dan volgens jouw moet?
sessions werken ook met cookies toch?
dus dan zouden ze alsnog te faken zijn?
Als je sessies gaat bijhouden kun je natuurlijk gewoon op de server bijhouden wat het user-level van een gebruiker is, zodat hij dat niet zelf kan faken.

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
ik zou niet weten hoe ik ANDERS die userlevel en ingelogde user zou moeten onthouden als het niet (veilig) met cookies/sessions kan?

Computers ain't that smart, Whatever man built could be taken apart


  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

KnEuTeR schreef op 03 september 2002 @ 15:06:
ik zou niet weten hoe ik ANDERS die userlevel en ingelogde user zou moeten onthouden als het niet (veilig) met cookies/sessions kan?
Met sessies kan 't dus wel veilig, als je 't maar aan de serverkant opslaat:

- user logt in, server controleert password, indien correct krijgt user een sessie...
- server haalt aan de hand van username userlevel uit database
- user kan met sessie alleen die dingen doen die server aan de hand van userlevel leuk vind...

zo moeilijk is 't niet hoor... pak 's een goed boek ofzo... :+

Verwijderd

Zorg dat je alles encrypted in een cookie zet, dus niet dat iedereen het paswoord kan lezen. Ook andere informatie zoals bijv. een userlevel moet er niet leesbaar instaan, dan hoef je namelijk maar wat te veranderen en je hebt een ander user level.

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Verwijderd schreef op 03 september 2002 @ 15:12:
Zorg dat je alles encrypted in een cookie zet, dus niet dat iedereen het paswoord kan lezen. Ook andere informatie zoals bijv. een userlevel moet er niet leesbaar instaan, dan hoef je namelijk maar wat te veranderen en je hebt een ander user level.
Dat zei ik ook al... maar op zich blijft dat een gevoelige manier van informatieopslag... je kunt 't doen als 't absoluut noodzakelijk is. (Bijv omdat je meerdere servers overal ter wereld hebt staan die niet snel met elkaar kunnen communiceren). Anders kun je het beter server-side opslaan.

  • Sport_Life
  • Registratie: Mei 2002
  • Laatst online: 00:05

Sport_Life

Solvitur ambulando

Als iemand weet hoe jouw systeem in elkaar zit wel (makkelijk achter te komen door te kijken hoe de cookie eruit ziet) is het makkelijk te faken, dus het is veiliger om Msql te gebruiken :)

PV: 9360 WP WZW/ONO | Warmtepomp: Toshiba Estia 8kW 3fase | A+++ | 2x Zappi v2.1 | Stevens Super Flight '25


  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
ja maar hoe bedoel je "server side opslaan" en MySQL gebruiken, ik heb alle users + md5 password in een mysql database staan, maar ik weet dan niet hoe ik zonder cookies een veilig "login systeem" kan maken?!

op http://www.phpfreakz.nl staat ook gewoon zoals ik het doe ongeveer....

Computers ain't that smart, Whatever man built could be taken apart


  • DirtyHennessy
  • Registratie: Oktober 2001
  • Laatst online: 31-07 19:51
session gebruiken met cookie bij bijvoorbeeld 5 minuten inactifiteit automatisch de sessie beindigen :)

  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

Topicstarter
Koeskoes schreef op 03 september 2002 @ 23:05:
session gebruiken met cookie bij bijvoorbeeld 5 minuten inactifiteit automatisch de sessie beindigen :)
en wat heeft dat verder voor veiligheidsnut?! :?

Computers ain't that smart, Whatever man built could be taken apart


  • DirtyHennessy
  • Registratie: Oktober 2001
  • Laatst online: 31-07 19:51
KnEuTeR schreef op 03 september 2002 @ 23:07:
[...]

en wat heeft dat verder voor veiligheidsnut?! :?
als de sessie is beindigt is het nie meer te faken is :)
hadden we bij ons op school ook :) mensen hadden sites met inlog , en grote boze leraartjez gingen in logs kijken :D kenne ze zo je session id kopieeren, maar als die al afgesloten is dan heb je niks meer aan session id :)

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Poohbear schreef op 03 september 2002 @ 15:11:
[...]


Met sessies kan 't dus wel veilig, als je 't maar aan de serverkant opslaat:

- user logt in, server controleert password, indien correct krijgt user een sessie...
- server haalt aan de hand van username userlevel uit database
- user kan met sessie alleen die dingen doen die server aan de hand van userlevel leuk vind...

zo moeilijk is 't niet hoor... pak 's een goed boek ofzo... :+
KnEuTeR schreef op 03 september 2002 @ 23:03:
ja maar hoe bedoel je "server side opslaan" en MySQL gebruiken, ik heb alle users + md5 password in een mysql database staan, maar ik weet dan niet hoe ik zonder cookies een veilig "login systeem" kan maken?!

op http://www.phpfreakz.nl staat ook gewoon zoals ik het doe ongeveer....
Lees je wel, of snap ik je niet? Wat is er mis met mijn uitleg? :?

  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-08 16:09
Mijn mening is dat je dat ook niet in sessions moet opslaan, maar steeds bij het herladen van de pagina de username en pass uit de cookie haald, en dan in de db gaat kijken wat z'n status is..

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

pass in cookie != good

Doet iets met Cloud (MS/IBM)


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 28-08 08:57

TwoR

Gekleurde stippen

Cookies zijn wel veilig je moet alleen niet teveel data opslaan in de cookie zelf maar hem laten verifieren met een Db en daar userstatussen etc. uithalen.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Volgens mij snap je niet hoe sessies werken en wat het verschil is met een cookie.

Cookies:
-Een bestand op de PC van de client die de informatie bevat. Hierin staan dan dus het userlevel, al dan niet gecodeerd.

Sessies:
-Er wordt een cookie op de pc van de client opgeslagen met een uniek nummer. Dit nummer komt overeen met een bestandsnaam in /tmp In dit bestand wordt dan het userlevel opgeslagen.

Wat je dus alleen met sessies op de clientkant opslaat is het 'unieke id'. De rest staat allemaal in het bestand in /tmp op je server. Men kan dus alleen het sessie-id veranderen, maar niet de variabeles die in het bestand op jouw server staan.

Duidelijk? :)

  • bille
  • Registratie: Mei 2000
  • Laatst online: 05-08 23:45

bille

Don't call me Buff

Poohbear schreef op 04 september 2002 @ 07:57:
[...]


[...]
Lees je wel, of snap ik je niet? Wat is er mis met mijn uitleg? :?
hehe ligt niet aan jou. Volgens mij wordt er niet goed gelezen :)

gewoon sessie aanmaken met inloggegevens en vervolgens sessie object in een cachemanager met een timer erop. Maare.. wellicht dat de topicstarter gewoon es ff een goed PHP boek moet kopen zoals deze, want je kan toch niet verwachten dat iemand hier een compleet stuk code gaat neerzetten met daarin de specifieke oplossing.

[ Voor 0% gewijzigd door bille op 04-09-2002 09:18 . Reden: klote bb ]

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Triloxigen schreef op 04 september 2002 @ 08:53:
Mijn mening is dat je dat ook niet in sessions moet opslaan, maar steeds bij het herladen van de pagina de username en pass uit de cookie haald, en dan in de db gaat kijken wat z'n status is..

lekker is dat :) ... Ik heb liever niet mijn wachtwoord in een cookie staan eigenlijk.
Daarnaast lijkt het me een beetje onzinnig om het op deze manier te doen. Eigenlijk maak je nu ook gebruik van de sessie techniek. Je hebt bij de client een uniek identificerende info (user + pass) waarmee op de server de bijbehorende gegevens kunnen worden gezocht (userlevel in db).

Waneer je nu gebruik maakt van sessies wordt die uniek identificerende code niet user/pass, maar een unieke random code. de serverside gegevens worden niet uit de db gehaald, maar zitten in een klein bestandje.

Dat jij sessies als 'onveilig' beschouwt en daarom maar jouw systeem gebruikt slaat dus eigenlijk helemaal nergens op. Je eigen manier is 1 onveiliger (pass in cookie, fijn voor gedeelde pc's ed) en 2 trager (elke keer dat een pagina opgevraagd wordt, wordt er weer de hele inlog + info ophaal actie uitgevoerd) zonder dat het enige meerwaarde biedt.

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


Verwijderd

Gewoon sessies gebruiken, staat er alleen een phpsessid in de cookie. De rest blijft op de server. Als je toch perse een cookie wilt (omdat iemand ingelogd moet kunnen blijven) dan stuur je niet al z'n info maar alleen een uniq_id() ofzo en die zet je ook in de usertable zodat je met die uniq_id kunt achterhalen wie het is en wat z'n rechten zijn. Maarja dat kost weer wat extra cpu bij elke pageload.

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 17:03
Als ik data in een cookie zet gooi ik er altijd encryptie overheen. Nooit gevoelige data in cookies zetten.

Mijn cookie data bevat dan user_id en password (md5 hash zodat als men door je encryptie heen is dus ook dat niet er uit kan trekken).

Maarja, dit is allemaal ook al zo'n beetje boven geroepen en is imho toch echt de meest veilige oplossing.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Erg vermakelijke kost :)

Data met Encryptie eroverheen is ook nog steeds data, dus is het ook nog steeds fraude gevoelig (aangezien je data erin staat)

Stel je voor dat iemand op het idee komt om een willekeurige string te maken van x karakters, die slaat hij op bij de "ingelogde" gebruikers, logt de gebruiker in zet je de random string in een cookie, waardoor je kan opzoeken wie die gebruiker is, geen encryptie van de data, niets alleen volkomen willekeurigheden.

Ah, laat ik mezelf niet voor de gek houden, niemand zal ooit zo iets bedenken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 17:03
dusty schreef op 04 september 2002 @ 11:01:
Stel je voor dat iemand op het idee komt om een willekeurige string te maken van x karakters, die slaat hij op bij de "ingelogde" gebruikers, logt de gebruiker in zet je de random string in een cookie, waardoor je kan opzoeken wie die gebruiker is, geen encryptie van de data, niets alleen volkomen willekeurigheden.
Hmmm, nieuw voorstel:
data -> md5 van maken

Data + md encrypten en in cookie zetten

Op het moment dat er dan bogus data binnen komt klopt de md5 dus niet meer en kun je dus alles discarden. ;)

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
in een koekje alleen user preferences ofzo opslaan, geen passwords / userlevels... staat hierboven ook al zo`n beetje... en wie gaat in godsnaam cookie data encrypten en dan op de client opslaan... lekker omslachtig als je het gewoon op de server kan bijhouden...

kortom, sla het userlevel in het sessie object op (staat ook hierboven). Wat is een sessie object? Een sessie object wordt aangemaakt (in jsp wel iig weet niet of dat voor php ook geldt) voor elke gebruiker die voor het eerst jouw site bezoekt. Hierin kun je variabellen / objecten opslaan voor een specifieke sessie. Als de gebruiker de browser sluit, of er treedt een sessie timeout op, door bijvoorbeeld 30 minuten niets te doen, dan verdwijnt de sessie weer uit het geheugen van de webserver. Jij zou dus het userlevel in het sessie object kunnen zetten op het moment dat iemand inlogt.

Er is verders zat informatie voor php-sessies te krijgen dus ff zoeken met google moet voldoende zijn.

Als je dat af hebt kun je cookies gaan gebruiken voor zoiets

[rml][ php] Inloggen met cookies[/rml]

suk6

Verwijderd

eMAeRCe schreef op 03 september 2002 @ 15:18:
Als iemand weet hoe jouw systeem in elkaar zit wel (makkelijk achter te komen door te kijken hoe de cookie eruit ziet) is het makkelijk te faken, dus het is veiliger om Msql te gebruiken :)
zucht 8)7 :X
lekker antwoord
cookies zijn niet veilig DUS -> Msql
net of Msql :? per definitie veilig is? onzin! en er zijn ook nog andere databases en opslagmethodes hoor ;)


als je een antwoord geeft probeer dan een zinnig antwoord te geven en niet zomaar termen de lucht in te smijten waar je ooit eens over gedroomd hebt.

sorry maar dit moest ik even kwijt _/-\o_

p.s. je bedoelde zeker MSsql Server ipv miniSQL?

  • CyberJack
  • Registratie: Augustus 2002
  • Laatst online: 19-08 20:21
Als je met cookies wilt gaan werken,
laat dan tijdens het inloggen een unieke code maken van een teken of 64 (of 128),
sla deze dan op in de database, in een extra veld bij de gebruiker,
en zet de zelfde code in een cookie
Zorg ervoor dat je memory cookies gebruikt, deze worden verwijderd als de brouwser word afgesloten.

Vergelijk vervolgens bij ieder bestand wat de gebruiker wil openen of de string in de cookie overeenkomt met de string in de DB, zo ja, ingelogd, zo niet.... redirect naar login.....

Werk erg goed, omdat de string die in het cookie staat, overeen moet komen met de string in de DB, en die word gevuld op het moment dat de gebruiker inlogt, dus faken van een cookie heeft geen zin meer, en je verstuurd geen belangrijke data.

https://bottenberg.dev


  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 17:03
CK schreef op 04 september 2002 @ 11:23:
kortom, sla het userlevel in het sessie object op (staat ook hierboven). Wat is een sessie object? Een sessie object wordt aangemaakt (in jsp wel iig weet niet of dat voor php ook geldt) voor elke gebruiker die voor het eerst jouw site bezoekt. Hierin kun je variabellen / objecten opslaan voor een specifieke sessie. Als de gebruiker de browser sluit, of er treedt een sessie timeout op, door bijvoorbeeld 30 minuten niets te doen, dan verdwijnt de sessie weer uit het geheugen van de webserver. Jij zou dus het userlevel in het sessie object kunnen zetten op het moment dat iemand inlogt.
En dan verloopt je sessie en ben je je object dus wel kwijt. Hoe wil je dan de user weer opnieuw laten inloggen zonder dat ie username/password moet invoeren? Zeker door op de client in zijn cookie de laatst gebruikte sessie op te slaan, die in een logintabel bijhouden, etc?

Dat is dus geen oplossing als je de site ook toegankelijk wilt maken voor mensen die hun cookies uit hebben staan. Op het moment dat mijn setcookie niet lukt geef ik nl. het sessie_id mee in de url zodat ze wel van de site gebruik kunnen maken en sessies ondersteunen zonder cookies. Op dat moment kan iemand gewoon je http requests onderscheppen en die vervolgens dus in een cookie kwakken en je bent opeens een user die toegang heeft. Erg fraude gevoelig dus. :(

  • Buffy
  • Registratie: April 2002
  • Laatst online: 29-08 16:49

Buffy

Fire bad, Tree pretty

Banpei schreef op 04 september 2002 @ 11:39:
[...]

Dat is dus geen oplossing als je de site ook toegankelijk wilt maken voor mensen die hun cookies uit hebben staan. Op het moment dat mijn setcookie niet lukt geef ik nl. het sessie_id mee in de url zodat ze wel van de site gebruik kunnen maken en sessies ondersteunen zonder cookies. Op dat moment kan iemand gewoon je http requests onderscheppen en die vervolgens dus in een cookie kwakken en je bent opeens een user die toegang heeft. Erg fraude gevoelig dus. :(
Een ander nadel van sessie id's in URL's is dat als je een link post of naar iemand emailt, je de sessie id mee stuurt. Een tijdje terug had iemand in een online artikel over een favorite vibrator een link opgenomen naar een pagina van de "Christine Le Duc" website met daarin een sessie id.
Je raad natuurlijk de gevolgen hiervan, vooral toen bleek dat de sessie id's makkelijk te raden waren.


PS: Als je http requests kan onderscheppen dan heb je toch ook de inhoud van de cookies omdat die dan meegestuurd worden?

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


Verwijderd

PS: Als je http requests kan onderscheppen dan heb je toch ook de inhoud van de cookies omdat die dan meegestuurd worden?
correct :)

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 17:03
Dawns_sister schreef op 04 september 2002 @ 12:24:
Een ander nadel van sessie id's in URL's is dat als je een link post of naar iemand emailt, je de sessie id mee stuurt. Een tijdje terug had iemand in een online artikel over een favorite vibrator een link opgenomen naar een pagina van de "Christine Le Duc" website met daarin een sessie id.
Je raad natuurlijk de gevolgen hiervan, vooral toen bleek dat de sessie id's makkelijk te raden waren.
Zoals ik al zei doe ik dat dus alleen als iemand zijn/haar cookies uit heeft staan. Heeft geen nut als ze wel aan staan.
PS: Als je http requests kan onderscheppen dan heb je toch ook de inhoud van de cookies omdat die dan meegestuurd worden?
[/quote]
Correct (zoals boven al gezegd). Blijft wel zo dat de cookie optie imho toch beter blijft.

  • Skate2000
  • Registratie: November 1999
  • Laatst online: 29-12-2024
Ik sla logininformatie ook op in Cookies, maar natuurlijk niet het password en de usergegevens. Meestal zet ik in het cookie alleen maar de userID, de primary key in de userstable, de username, en het encrypted password.

Bij het laden van een pagina heb ik altijd een include, die het cookie checkt, en aan de DB vraagt of het in het cookie opgeslagen id, username en pw overeen komen met wat er in de DB staat. Klopt dit? Dan ben je gewoon wat er in je cookie staat. Evt. rechten kunnen gewoon in de DB staan.

Klopt het cookie niet? Dus iemand verander het userID, de username, of het encrypted pw, dan wordt het gezien, omdat het niet meer matcht met de database. In dat geval wordt het cookie weggegooid, en moet je opnieuw inloggen, om een nieuw (kloppend) cookie aan te maken.

Dit lijkt mij een veilige manier, of zijn er mensen die me kunnen vertellen hoe je dit zou kunnen omzeilen?

  • CyberJack
  • Registratie: Augustus 2002
  • Laatst online: 19-08 20:21
Ja dat is dus precies wat ik eerder poste......

En voor zover ik weet is dit niet te omzeilen, en zeker niet als je met memory cookies werkt.

https://bottenberg.dev

Pagina: 1