Avatar billede farsinsen Nybegynder
21. juni 2003 - 20:04 Der er 15 kommentarer

Hvordan undgår jeg et sikkerhedshul ved brug af PHPSESSID ?

Hej...

Jeg har hele dagen brudt min hjerne med det samme problem, et fiktivt eksempel vil vist beskrive det bedst.

En bruger, hvis browser ikke understøtter cookies, opretter en profil på www.superbutik.dk. Brugeren udfylder ved oprettelse en masse oplysninger så som adresse, navn, email, telefon osv.

Brugeren finder er produkt han vil vise en kammerat, kammeraten får linket, åbner det i browseren og opdager at han faktisk er logget ind.

Hvordan undgår jeg, denne ikke alene pinlige situation, men også kæmpe sikkerhedshul i mit login script?

Jeg har overvejet at bruge et ip check i selve sessionen, men her melder problemet med kollegier, hjemmenetværk osv. sig jo med det samme.

Kan man på nogen måde undgå at andre end netop den computer hvorpå sessionen første gang er åbnet, kan tilgå de forskellige variabler der er gemt ?!

Håber at en eller anden har den geniale løsning...

Jeg har forresten testet eksperten i dag, min kammerat var logget ind som mig da jeg sendte ham en url med PHPSESSID i enden ;/

mvh

Peter Farsinsen
Avatar billede erikjacobsen Ekspert
21. juni 2003 - 20:13 #1
Der er ikke meget andet at gøre end at lave et IP-check, checke browser-
identifikation, opsætning af sprog, og hvad den individuelle browser nu
end sender tilbage (check phpinfo() )  -  og det er jo ikke 100% sikkert.

Så kan du bede brugeren om at slå cookies til.

Der er også et problem på eksperten.dk: Hvis jeg laver et link
til egen server: www.detteerikkeetlink.com, og en person med
sådan et sessionid i URL-en klikker på linket, så står det i min
serverlog, og jeg kan logge ind som vedkommende. Men dét er der
til gengæld en løsning på - eksperten.dk er nok ligeglade med det...
Avatar billede erikjacobsen Ekspert
21. juni 2003 - 20:16 #2
PS: IP-checket vil måske gå galt af en helt anden årsag: nemlig
steder hvor man har flere forbindelser og der bliver valgt en
tilfældig fra gang til gang. Det ses en sjælden gang fra enkelte
udenlandske ISP-er.
Avatar billede Slettet bruger
21. juni 2003 - 20:21 #3
Der findes ingen vise sten til at lukke det hul. Man kan kun prøve at lukke det så meget til som muligt.

Det er det samme med nøglehuller - to identiske nøgler åbner den samme dør. Selvom der kun skulle være en nøgle. Det eneste sikre du har på en client er jo hans ip (hvis vedkommende ikke bruger cookies og det er ikke engang sikkert).

Opfattelsen skal vel være at folk der ikke har deres egen (sikre) IP tager en sikkerhedsrisiko når de logger ind på en hjemmeside.

Man kan så informere dem om dette... eller undlade!?
Avatar billede farsinsen Nybegynder
21. juni 2003 - 20:35 #4
Hmmm, altså den der med ip'en havde jeg jo sån' set selv regnet ud, så jeg lader lige spørgsmålet få lidt luft. Måske nogen finder på noget genialt.

Løsningen med IP'en er jo sådan set nogenlunde, forudsat at url'en ik' bliver videresendt på et kæmpe lan.

Jeg kom selv til at tænke på at man sku' bruge wan ip og lan ip. Hvis man havde de to ville man kunne tjekke det 100%, men kan lan ip'en overhovedet findes og i så fald uden brug af javascript.
Avatar billede Slettet bruger
21. juni 2003 - 20:37 #5
Mht. til det problem, du beskriver. Så kan du vel bare lade være med at GET'e session ID'et, men POST'e det i stedet. Så det altså ikke overføres i URL'en.

Du skal slå enable-trans-id (eller hvad det hedder) fra. Og så bare have et hidden input på alle dine sider (i en form der POST'er til serveren) med session id'et.
Avatar billede Slettet bruger
21. juni 2003 - 20:42 #6
erikjacobsen: Eksperten checker IP.
Avatar billede Slettet bruger
21. juni 2003 - 20:43 #7
mercur>>Det er en fin tanke. Efter min overbevisning er det dog helt ude i hampen. Hvad så vis folk har slået javascript fra? (der er nok en god chance hvis de allerede har slået cookies fra)
Avatar billede farsinsen Nybegynder
21. juni 2003 - 20:45 #8
mercur8 ->

Du mener altså at jeg skal poste alle mine links !? Tror jeg næppe...

Hvad angår din kommentar til erikjacobsen så beskriver det jo netop mit problem skrigende. Min kammerat og jeg sidder på samme lan, derfor er ip checket kun delvist noget værd...
Avatar billede Slettet bruger
21. juni 2003 - 20:50 #9
Det var nu også bare en idé. Jeg tog ikke penge for den.
Avatar billede erikjacobsen Ekspert
21. juni 2003 - 21:25 #10
"Eksperten checker IP." ... så er det noget de er begyndt på for ret nyligt
Avatar billede Slettet bruger
21. juni 2003 - 21:33 #11
Ja.
Avatar billede bearhugx Nybegynder
22. juni 2003 - 00:23 #12
mecur8 ... hvornår er de begyndt på det ... Og bruger de det så også til at tjecke om en session bliver tilgået fra to forskellige ip'er (altså indenfor samme session) --- Det er ikke mange dage siden at jeg ellers kunne påvise at sikkerheden var langt fra "i top" her på eksperten.dk
Avatar billede bearhugx Nybegynder
22. juni 2003 - 00:25 #13
Jeg tror at det handler om at finde en eller anden metode, som ikke tilføjer PHPSESSID til en URL... Det kunne Eksperten i hvert fald også lære noget af :-)
Avatar billede bearhugx Nybegynder
22. juni 2003 - 00:34 #14
farsinsen >> er det en option simpelthen at udelukke alle, som ikke kan/vil håndtere cookies ??

/Søren
PS : fandt en artikel, som måske var noget værd -->
  http://martin.f2o.org/php/session
Avatar billede Slettet bruger
22. juni 2003 - 02:05 #15
bearhugx: Ja det er det, de bruger det til.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester