For lige at svare på det oprindelige spørgsmål, så er din sikkershedsmekanisme så sikker som serveren. Hvis den knækkes, er din info tilgængelig.
Når du bruger sessions til at styre logins, bliver session ID placeret i en cookie på brugerens computer. Sessions er den mest sikre (almindelige) sikkerhedsprocedure.
Og før nogen slagter mig for den kommentar, så mener jeg ikke at kerberos, SSO og andre mere centraliserede teknologier ligger inden for den almindelige programmørs rækkevidde/budget. Session-ID'et er ikke umiddelbart til at forstå. Men læs om "Session Highjacking".
http://en.wikipedia.org/wiki/Session_hijackingNogle sikkerhedsregler at huske når du arbejder med "sikre" sites:
- Vær opmærksom på sql-injections og anden forurening af din data, uanset hvilken metode du bruger til dette. Dette gælder også almindelige query string variabler. Alt som brugeren kan ændre bør valideres.
- Hvis din data *er* følsom, så kør al trafik over SSL/https. Ikke kun login.
- Gem *ALDRIG* nogen som helst info i en cookie der kan kan give nogen mening isoleret. Inklusiv brugernavn til "husk mig til næste gang" funktionalitet.
- Set din session timeout til den korteste pratiske periode. Det vil sige at hvis en bruger kommer tilbage efter 5-10 minutter, skal vedkommende logge ind igen. Det der så er vigtigt er at gøre dette så smertefrit som muligt for brugeren. Hvis de var på en underside før de røg af, skal de se den samme side efter de logger ind.
- Log alt. Alt. Alt. Selv når en bruger gemmer noget = F.eks. "2009-04-04 21:23:33 User michael has edited information with ID 55". enten til database eller en text-fil.
Det her var et par guidelines til at starte på.
Paranoid? Hvem mig?
Hvis du laver et normalt website kan du skippe mange af dem, men gå altid ud fra at der er nogen der er nysgerrig nok til at prøve på noget.
Mvh,
Michael