Avatar billede hono Nybegynder
23. januar 2003 - 17:28 Der er 3 kommentarer

Sikkert passwordsystem!

Jeg skal have lavet et site med kodeord. Der er relativt stor risiko for, at nogle vil forsøge at bryde ind på sitet, og jeg skal derfor sørge for at sikkerheden er så høj som overhovedet muligt. Jeg er naturligvis klar over, at man ikke kan være 100% sikker, men jeg vil gerne der op af :)

Som det er nu, plejer jeg at lave loginsystemer sådan, så koden (krypteret med md5) ligger i en database. Når brugeren skriver et kodeord for at logge ind, krypteres dette og sammenlignes med det krypterede kodeord i databasen. Hvis de stemmer overens oprettes en session og man er logget ind. På alle mine sider tjekker jeg så om denne session er registreret og kun hvis den er det, ser man siderne.

Men hvor sikkert er det system. Er det umiddelbart muligt at bryde igennem - og hvad vil det kræve at komme igennem.

Er der andre metoder der kan anbefales, og som er mere sikre.

Glæder mig til at høre fra jer!

Hono
Avatar billede Slettet bruger
23. januar 2003 - 17:43 #1
Session systemet kan udnyttes på ihvertfald følgende to måder:

1) Direkte adgang til serveren. Ligger din maskine på en shared host el. lign. eller lykkes det at få adgang til serveren, er gyldige sessions tilgængelige i PHP's temp/ directory.

2) Session id'et bliver sendt med i HTTP_REFERER, hvis brugeren ikke har cookies slået til. Lad os antage, at en bruger logger ind på dit site. Denne bruger har ikke cookies slået til, og du har -enable-trans-sid (eller hvad det hedder) slået til i PHP config. Nu følger brugeren et interessant link fra din side, en person med skumle-hensigter har posted (i din guestbook el. lign). På denne side logger han HTTP_REFERER. I denne vil være indeholdt brugerens session id, og han kan nu logge ind som ham.

Hvis du vil omgå disse problemer, kan du implementere din egen session håndtering, eller bruge en anden end PHP's default.

Se mere på:
http://www.webkreator.com/php/configuration/php-session-security.html
http://www.n3rds.com.ar/files/docs/php_sessions/sess_handler.txt
Avatar billede alrua Nybegynder
23. januar 2003 - 17:46 #2
sessions er ikke særlig sikre...hvis brugeren ikke har aktiveret cookies og hans sessionid står i url'en kan han meget nemt komme til at sende den med hvis han fx giver en url til andre...

Jeg har gjort det (med inspiraiton fra PHPbb forum'et) at jeg kun sender session id'en som en cookie eller get-variabel og så gemmer jeg session-data i en database parret med IP'en...dvs at hvis en person prøver at bruge den samme session-id fra en anden ID bliver hans forsøg ignoreret og han tildeles en ny sessionid. En anden fordel ved at have det i databasen er forøvrigt at så er det nemt at lave "online-scripts". Bare sørg for at slettte gamle sessions.

Noget andet du skal tænke på er selve login-processen. Tjeck om der er magic quotes slået til og hvis der ikke er så BRUG ADDSLASHES! Og lad være med at kalde dine form-felter det samme som felter i databasen.

Men en kæde er jo som bekendt ikke stærkere end det svageste led, og det plejer at være brugerne. Hvis du vil have høj sikkerhed kan du kræve at brugeren skal lave sikre alfa-nummeriske passwords med både store og små bogstaver. Også din session udløbstid er et problem - hvis brugeren ikke logger ud og andre får adgang til computeren (og brugere logger (desværre) sjældent ud), så kan han få adgang hvis sessionen ikke er udløbet. Find ud af hvor lang tid folk skal bruge på hver side og sæt så din udløbstid lidt højere end det.

Håber du kan bruge det til noget selvom der ikke er noget specifik kode. Men det kan du vel udvikle selv? :D

-Alrua
Avatar billede Slettet bruger
23. januar 2003 - 17:50 #3
Nåja, jeg glemte lige et rigtigt godt link:

http://www.owasp.org/guide/

Læs og forstå denne guide.

The "OWASP Guide to Building Secure Web Applications and Web Services" has been downloaded over 500,000 times in the last 3 months. At 60 pages it not always light reading but is a practical approach to building applications and covers a wealth of content from defining your security needs to avoiding common security problems like Cross Site Scripting and SQL Injection.

The Guide includes

An Overview - describing what web applications and web services are
How Much Security Do You Really Need ? - explaining how to assess the security need and perform risk assessments
Security Guidelines - A set of high level principles that all applications should adhere to
Architecture - Discussion on how Architecture considerations can ensure security where its needed
Authentication - Describes the different types of authentication possible and the common problems
Session Management - Describes the right way to manage sessions and generate security tokens
Access Control - Describes access control concepts
Event Logging - Describes what to log and how to log user and system events
Data Validation - Describes strategies for dealing with unexpected input and what you need to block
Common Problems - Describes problems like cross site scripting and SQL Injection and offers practical advise on how to stop them cold
Privacy - Discusses privacy issues that may face your application
Cryptography - How to use cryptography and describes some common mistakes
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