Hejsan! Jodu... Ok, tack för alla förslag, men jag tror att jag var lite otydlig. Sessioner använder sig av cookies, så det är samma sak. Men du måste tänka på att det inte får gå att skapa cookien själv. Dvs, det får inte gå att lista ut vad cookien ska ha för värde. När man använder sessioner funkar det så att servern slumpar fram ett värde som den sparar på servern för att tala om att det är giltigt. Men sessionsobjekt sparas väl på servern och blir därmed svårare att lista ut namnen/värdena på? Men säg t ex att jag väljer att skapa en vanlig kaka så fort användaren loggar in. Sen har jag en kontroll på varje "säker" sida. Kakan tas sedan bort när användaren ifråga loggar ut. Om du krypterar värdet i Cookie.n så blir det ju helt klart svårare för användaren att läsa av dess värde. Hur som helst så ska du komma ihåg att värden i Cookie.s inte bara är "ReadOnly", utan att de även kan sättas till nya värden. Säkerhet vid inloggning
Jag kommer inom kort starta en sida som jag vill ha så pass säker som möjligt.
Jag funderar därför på vad det bästa sättet är att just hålla så hög säkerhet som möjligt när personen ifråga väl är inloggad. Jag fick ett exempel från en mycket duktig kompis. I det exemplet var kontrollen om man är inloggad gjord mha cookies. Är det inte säkrare att använda t ex if-satser där man kontrollerar om sessioner är skapade eller ej?
Vad tycker ni?Sv: Säkerhet vid inloggning
1) använd ssl
2) ingen autoinloggning pga. att cookies sparas med en massa intressanta saker
3) tillåt inte annat än ssl när man är inloggad/loggar in
4) spara hashade lösenord i db
5) använd ev. salt på de lösenorden
6) använd sessions till identifikationen, gärna i kombination med att du får tag på mac-adress (överkurs :) )
7) använd parametrar till dina sql-frågor
8) validera 100% av allt användaren kan fylla i själv (t.ex. cookies, querystrings, formulär etc.)
9) om du ska ha extremt hög säkerhet: kräv klientcertifikat av klienten, se till att det är samma hela tiden (stoppa det i sessions eller liknande) etc.
10) skriv inte ut en massa roliga felmess
man kan hålla på i en oändlighet :)
Men du kommer långt med 2, 6 och 7. Gärna 1, 3 och 4 om du har möjlighet också :)Sv: Säkerhet vid inloggning
SSL har jag tyvärr inte råd med, annars skulle det utan tvekan användas.
Sidan är programmerad i klassisk ASP 3.0 och jag skulle helt enkelt vilja ha tips på det smidigaste och bästa sättet att kontrollera om någon är inloggad. Ska man skapa ett sessionsobjekt, kaka eller något annat smartare?
Exempel:
<% If Session("fjipeopj") = "true" then bla bla bla. %>
Eller om man ska skapa en kaka varje gång personen ifråga loggar in som sedan tas bort efter utloggning?
Frågan var inte mer avancerad än så, men tack ändå för tipsen! Jag kommer förmodligen ha användning för dom i framtiden.
Återigen: Vad tycker ni?
Tack för migSv: Säkerhet vid inloggning
Sv: Säkerhet vid inloggning
Cookies lagras ju på klienten... Sv: Säkerhet vid inloggning
Men kan man på något sätt kryptera värdet i kakan för att sedan dekryptera det när man genomför kontrollen? Blir detta säkrare eller blir det lika enkelt för användaren att kolla in den skapade kakan för att sedan modifiera den så att man kan logga in som en annan?
Eller är detta en självklarhet som jag har förbisett?
Hoppas ni förstår frågan.Sv: Säkerhet vid inloggning
En "teknik" som ofta används för att "ta sig förbi" lösnenordsskyddade sidor kallas för "Cross Site Scripting", där man utnyttjar andra delar av din sajt för att fånga upp andra användares Cookie.s. Med hjälp av "dåligt" validerad indata kan en användare helt enkelt hämta värdet från andras Cookie.s (Även session-värdet som ju även lagras i en slags Cookie). Oavsett om informationen nu är krypterad eller ej så kan den nya användare tilldela samma värde till sin cookie som den "riktiga". Oavsett om data nu är krypterad i varesig Cookie eller Session så blir den nya användaren nu inloggad också.
Du kan läsa en artikel om just detta här:
http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=436d5180-8909-4aa2-baee-7c8f925d6eab
Om just cookies och javascript kan du läsa om här:
http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=4ee18a4d-4ae2-4b36-834d-b734a16b4fb5
SQL-Injection är ytterligare något som du behöver skydda dig mot. Det gör du dels med parameter-styrda frågor som det redan föreslagits. Mer om SQL-Injection hittar du här:
http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=29a58b01-ca79-4877-b924-4f5da18d4a2a
/Fredrik, www.swesecure.com