Sorry, bij mijn reactie had ik pagina 3 niet gelezen
Reactie op dit:
vinTage schreef:
Met computer 2 ga je ook daarheen en session id die boven in beeld staat bij computer 1 zet je in computer 2 middels de webdevtoolbar als value voor het SESSIONID cookie, refrech de page op comp2 en check de dump onderin, je hebt daar de sessionnaam van computer 1.
Ja, maar hier heb je niks aan. Als jij bijv. administrator bent, dan zal degene die jou wilt hacken toegang moeten hebben tot jouw PC.
Inderdaad, je neemt mijn sessie zo over, dit kan je in principe achterhalen als user als je bijvoorbeeld remote code execution gebruikt, maar ik neem aan dat je dat niet doet, dus dan is het zonder dat IP adres net zo veilig als met
Ja, maar hier heb je niks aan. Als jij bijv. administrator bent, dan zal degene die jou wilt hacken toegang moeten hebben tot jouw PC.Â
Hoezo?
ALS ik een session_id weet, dan neem ik gewoon je session over, ik kan dan gewoon doen en laten wat ik wil met jouw session, zoals in dat testscriptje jou een andere naam geven bv.
De overige controles maken het eigenlijk pas veilig.
Als je mijn session_id hebt, maar hoe ben je van plan hier aan te komen? Een administrator (jij dus) kan dit wel, maar die zie ik niet zo gauw er voor aan om zijn eigen site te hacken, of wel soms?
Zonder mijn session_id kan je niks met mijn session!
Ik had ook al 50 keer "gezegd /aangetoond" dat dat idd niet zo makkelijk was/zal zijn, maar ga nou niet zeggen dat het onmogelijk is...(als iets deftigs gescript is zal het wss wel onmogelijk zijn, maar zeg nooit nooit)
Ja, dat klopt, je kan hem nog wel kapen inderdaad. Voor zover ik weet is daar niks tegen te doen. Je kan de kaping wel onschadelijk maken d.m.v. zoiets:
Ik had ook al 50 keer "gezegd /aangetoond" dat dat idd niet zo makkelijk was/zal zijn, maar ga nou niet zeggen dat het onmogelijk is...(als iets deftigs gescript is zal het wss wel onmogelijk zijn, maar zeg nooit nooit)
Het is onmogelijk om het 100% dicht te maken. Denk bijvoorbeeld aan betalingen via PayPal. Even een voorbeeld om dit duidelijk te maken.
Persoon 1: Gebruiker PayPal.
Persoon 2: Hacker.
Persoon 1 staat ingelogd op paypal om een betaling te doen. Persoon 2 kan dat controleren en zijn computer overnemen.
Oftewel, zeg maar dag dag tegen je geld.
Nick.
PS: Dit gebeurd natuurlijk niet zomaar, maar de kans bestaat, ook al is deze rond de 0.001%.
EDIT:
Dit is dan natuurlijk niet te schuiven op jou omdat jij alleen maar het script online heb staan, de hacker krijgt de schuld.
ik heb een tijd op Bootleggers.us gezeten, en daar zaten bijzonder veel mensen die het spel graag exploiten voor de lol. Het ergste wat hier in de buurt komt, is de sessionhack, dus de gehele sessie overnemen van iemand. Dat is te fixen.
Dat van dat IP adres. als je een IP en een random string in de db zet en in een sessie, en als de code en IP niet matchen met hoe het in de DB staat, dan destroy() je het.
Verder ben ik nog niet tegengekomen dat iemand de sessie $vars heeft gewijzigt
edit: Misschien om het wat duidelijker te maken:
Ik ga voor safe
Dat van dat IP adres. als je een IP en een random string in de db zet en in een sessie, en als de code en IP niet matchen met hoe het in de DB staat, dan destroy() je het.
Dat is zo ongeveer wat ik doe met mijn "voorstelletje" wat ik dacht dat veiliger zou zijn dan alleen een ip check.
inderdaad, zoals joost al zei, ga ik gewoon de sessions destroyen, zo krijgt de "hacker" ook geen data te zien die niet voor hem bedoeld is.
REMOTE_ADDR is veranderbaar door de gebruiker; als hij je session_id al weet, waarom dan niet ook meteen je IP?
Waar zou je iemand dan anders mee willen identificeren? Misschien met HTTP_X_FORWARDED_FOR, maar die lijkt me dan net zo goed aanpasbaar. Zeg me als ik het fout heb, want zoveel verstand heb ik niet op dit gebied.
Ja, HTTP_X_FORWARDED_FOR is ook aanpasbaar, makkelijker dan REMOTE_ADDR zelfs, omdat alle HTTP_* dingen in de HTTP Header worden meegestuurd. Dus wat ik zeg, session is safe genoeg, maar je kan hem onmogelijk zo ultiem veilig maken als jij wilt.
en hoe bepaal je dan welk ip je neemt, want je zegt wel dat het kan, maar ik vind niks nuttigs op google (toch zeker 5 minuten rondgekeken)
Kheb wel hier en daar gelezen dat je een ander ip kan nemen (bv gwn via proxy, of bij sommige providers met dynamische ip,s een flush of zo iets), maar ik vind nergens welk ip je wilt gebruiken.
Dus imo nog steeds veilig genoeg?
Zoals ik zei, veilig genoeg. Nee, ik vond inderdaad ook niks over hoe je het kan veranderen, maar wel dat het kan (geen hard bewijs dus)Â
Dus eigenlijk zei je tot nu toe niks interessants
thx lemoinet, ik heb die functie idd ook al eens ergens terug gezien maar wist niet meer waar.
Eigenlijk maakt het me ook helemaal niks uit of ze met een echt of vals ip inloggen, ze foppen alleen zichzelf als ze halverwege van ip gaan veranderen, door de overige controles komen ze niet meer heen met een ander ip
Nu heb ik wel ergens gelezen dat AOL wel zomaar ineens andere ip's toekent, of dit echt waar is weet ik niet, nu maar hopen dat ze in belgie/nederland niet zo'n rare constructie gaan verzinnen, heel wat inlogsysteempjes zouden het lastig krijgen dan
Nee, idd, ik zeg niet zoveel interessants, maar ik zeg in ieder geval wat. PHP.net: getenv is gewoon een equivalent voor _SERVER, dus HTTP_CLIENT_IP wordt ook in de HTTP Headers meegestuurd, minder veilig dan REMOTE_ADDR
Al eens gedacht om je sessie variabelen niet bij te houden in SESSION maar gewoon in je db? Je gebruikt dan de sessionId of een andere als enige sessie variabele en over de andere gegevens heb enkel jij volledige controle.
Al eens gedacht om je sessie variabelen niet bij te houden in SESSION maar gewoon in je db? Je gebruikt dan de sessionId of een andere als enige sessie variabele en over de andere gegevens heb enkel jij volledige controle.
Dit verplaatst alleen de opslagplaats van de sessies, niet het gevaar van hijacken.
Hoewel het een uniek idee is (voor mij toch), ERGENS moet er een referentie bestaan, en zoals Joost al aangaf blijft er dan niet veel meer over dan het id.
[off]
stiekum vind ik dit gedoe eigenlijk echt wel interessant
Hoewel het een uniek idee is (voor mij toch), ERGENS moet er een referentie bestaan, en zoals Joost al aangaf blijft er dan niet veel meer over dan het id.
[off]
stiekum vind ik dit gedoe eigenlijk echt wel interessant Â
Sessies opslaan in de database kan wel nuttig zijn hoor, als je bijvoorbeeld een website op meerdere servers moet draaien bijvoorbeeld, en zo zijn er nog wel een paar redenen
Zo vinTage! We hebben in het begin van dit topic Sima lekker wakker geschud he! hahahah
Wat een lang topic zeg
Edit:
Mensen we kunnen hier uren over discussiëren, maar zolang er geen https
gebruikt wordt zijn sessies, cookies en headers gewoon te faken.
Tenzij je de data gewoon netjes encrypt en gewoon controleerd op input.
Is er niet zoveel mee aan de hand.
Ook al komt er geen user input in je sessie te staan, toch blijven controleren op input.
Veel mensen denken bijvoorbeeld dat ze radio buttons niet hoeven te checken op inhoud.(denk aan addslashes of dergelijke functies).
Een beetje programmeur zal dit vrij snel in de gaten hebben en in het ergste geval zal dit nare gebeurtenissen opleveren.
Het is nooit helemaal veilig. Er is altijd wel 1 iemand die slimmer is als ik(wij).
Maar hier kom je achter zodra die gene je zal testen
PS: Joel is zo vriendelijk geweest om mijn oude gebruikersnaam (D_O) te veranderen naar Wave6 (Naam van mijn onderneming)