Kom ihåg mig?

Login på webbsida, vad tänka på

 
Ämnesverktyg Visningsalternativ
Oläst 2008-01-09, 19:44 #1
Intets avatar
Intet Intet är inte uppkopplad
Flitig postare
 
Reg.datum: May 2004
Inlägg: 322
Intet Intet är inte uppkopplad
Flitig postare
Intets avatar
 
Reg.datum: May 2004
Inlägg: 322
Håller på att utvecklar en sajt med inloggningsmöjligheter för användare. Jag har i ett första utkast gjort så att vid lyckad inloggning (matchat användarnamn och lösen i databasen) så sätts en sesionsvariabel som är samma som "UserID" i databasen.

Nu börjar jag fundera på hur säkert det egentligen är. Kan man manuellts skapa sesionsvariabler på en webbsajt för att på så sätt "logga in" på andras konton? Eller räcker det som säkerhet?

Påpekas skall att det inte handlar om någon känslig information för användarna, så inga kontonummer eller liknande riskeras att komma ut någons konto blir kapat.

Kan jag köra med "sesionsvarabel-varianten" eller är jag ute och cyklar?
Intet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 20:35 #2
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Jag hade börjat med att planera hur man ska spara lösenorden, dvs inte i klartext och inte i endast md5. Sen hade jag gått idare med hur man skickar lösenorden via get och post (om du gör det överhuvudtaget).
Kristoffer G är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:02 #3
Intets avatar
Intet Intet är inte uppkopplad
Flitig postare
 
Reg.datum: May 2004
Inlägg: 322
Intet Intet är inte uppkopplad
Flitig postare
Intets avatar
 
Reg.datum: May 2004
Inlägg: 322
Tack för dina synpunkter. Det är sant att jag borde kryptera lösenorden i databasen. Gällande POST eller GET så vet jag inte riktigt hur sättet jag hanterar det på kallas. Jag kör ASP.NET och textboxarna på hemsidan är körs som " Runat="server" ".
Intet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:40 #4
wizzos avatar
wizzo wizzo är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2006
Inlägg: 424
wizzo wizzo är inte uppkopplad
Flitig postare
wizzos avatar
 
Reg.datum: Dec 2006
Inlägg: 424
Läste en några veckors gammal tråd där vissa veteraner anmärkte att sajten hamsterpaj som blev hackat förra året inte enbart skulle ha använt sig av md5.

Utan att dem minst borde ha använt SHA1+salt, hur man nu gör det. Att döma av alla tips som sades i den tråden så verkade md5 inte vara tillräckligt. På grund av databaser så som det här
http://www.md5decrypter.com/
wizzo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:44 #5
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
Adestro Adestro är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2007
Inlägg: 1 036
Ta bort denna post..
Adestro är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:44 #6
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
man ska aldrig enbart använda md5 på lösenord... om du vill köra med md5 kör då md5+salt. Men helst av allt ska du komma på en egen funktion.

Allt skickas i klartext via formulär, så du borde fundera på ssl också. Att spara id i en session variabel går väl bra, men inte i klartext. Som tidigare person nämnde skulle du kunna baka ihop alla kriterier (id, namn, epost) till en sträng som du sedan SHA1+1 och sparar detta i session variablen.

Vi föredrar att skapa egna funktioner för detta, så har du kunskapen tycker jag du ska försöka göra det i alla fall.

Se sedan till att kontrollera allt som har med databasen att göra. Om man t ex loggar in ska du kontrollera vad personen skrev i formuläret. Om det handlar om PHP så ska du inte förlita dig på magic_quotes utan escapa allt själv också, samt limitera accessen till databasen och kör helst PDO.

Med limitera accessen till databasen menar jag att du ska bara ha precis så många databas accesser som krävs för att sidan ska fungera, och se till att begränsa all databaspåverkan som användare ska ha (Ändra profil, lösenord osv osv).


EDIT* Såg precis att du hade skrivit ASP.NET... jag är inte insatt i det överhuvudtaget...
Kristoffer G är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:54 #7
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Citat:
Originally posted by Brazzan@Jan 9 2008, 21:44
Att spara id i en session variabel går väl bra, men inte i klartext.
Vad har det för betydelse om det är klartext då all sessionsdata lagras på serversidan?

Edit: Stava!
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:55 #8
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Du kan plocka upp/Kapa sessionen
Kristoffer G är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 21:57 #9
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Citat:
Originally posted by Brazzan@Jan 9 2008, 21:55
Du kan plocka upp/Kapa sessionen
Det kan du ju inte såvida du inte kan köra egen kod på servern, och har du kommit på ett sånt säkerhetshål så att du kan läsa andras sessioner, och även skriva nya värden till din session så finns det ju inget som hindrar att du kopierar någon annans sessionsvaribel.
Kryptering/hashing ger ingen ökad säkerhet på det sättet.

Edit: Det som kan öka säkerheten är däremot att man knyter sessionen till IP-numret!
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-09, 22:12 #10
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Spoofa ip går hur bra som helst.. ger liten säkerhetsökning. Det hela handlar om att göra allt svårare för "hackaren". Det är sant att det inte ger någon säkerhet på det sättet.

Låt oss säga att du ska du kör i klartext och du har en session som innehåller id't på personen som är inloggad, och man kan som användare ta bort saker i databasen som är kopplade till detta id't. Då har du möjligheten att spamma ut id'n till scriptet som raderar data beroende på id't, vilket resulterar i att databasen töms. Om man istället kör med allt hashat/krypterat kan han bara rensa datan som är kopplad till sessionen, samt att man inte kan gissa sig till andra id'n.

Tänk dig "DELETE FROM tabell WHERE id='$id' LIMIT 1";

$id innehåller då '10' i klartext...

Om du istället hashar/krypterar detta id så att du får "adsdP(912314FA)FA)" eller liknande, då kan sedan göra en säker select som inte är baserad på vad scriptet får in, och du plockar ut id'n och konverterar dem till samma hash/kryptering på servern, och sen matchar du och deletar.

Finns mkt bättre sätt att lösa säkerheten på dock.
Kristoffer G är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017