Säkerhetskontroller på adminsystem

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2009

Säkerhetskontroller på adminsystem

Tjena alla sweclockare.
Tänkte dela med mig lite av mina egna tips, och hoppas även kunna få tips från er angående säkerhetskontroller på bl.a. inloggningssidor.

Det jag i nuläget använder mig för adminsystemet är:

Kolla om besökaren har samma ip som finns lagrat i en databas, annars nekas den åtkomst.

Kollar även om en session är skapad(den skapas då man loggar in) Är sessionen inte skapad så nekas man till inloggningen.

Jag kollar även så att antalet inmatade tecken stämmer överens med det lagrade värdet i en databas.

Vad använder ni er av för kontroller gällande den biten?

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2002

Du får först och främst se till att inte spara någon känslig information i din session.

Sen kan du ju spana in vanliga saker som https, sql-injections m.m.

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Jun 2005

Först och främst så är IP adress ingen bra idé att basera på då detta kan ändras tämligen ofta.

Sedan hoppas jag att du lagrar lösenord i Hash form ?

Och även matchar dom genom hash värdet vid inlogning ?

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2009

Jadå, sql-injections och kryptering är något jag alltid har med på mina sidor.
Jag kollar även att alla data som skall vara siffror är siffror, så man inte kan mata in text, jag kollar även så att textlängden inte överstiger det rimliga.
Jag skyddar för övrigt mot Cross site scripting.

Något mer kanske?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
Citat:

Ursprungligen inskrivet av KentRoyal
Du får först och främst se till att inte spara någon känslig information i din session.

Sen kan du ju spana in vanliga saker som https, sql-injections m.m.

Varför inte spara känsilg info i sessionerna? Menar du i cookies eller sessionsfilerna på webbservern? Kör man dedikerad server där /tmp inte kan blandas ihop mellan olika konton ser jag iafl inget problem med att ha saker i sessionsfiler.

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2002
Citat:

Ursprungligen inskrivet av iXam
Varför inte spara känsilg info i sessionerna? Menar du i cookies eller sessionsfilerna på webbservern? Kör man dedikerad server där /tmp inte kan blandas ihop mellan olika konton ser jag iafl inget problem med att ha saker i sessionsfiler.

För att det är väldigt enkelt att sniffa saker över http och även om man gör sidan "100% säker" mot XSS finns det ju ingen anledning att spara känslig data direkt i en cookie när man kan matcha "skräpdata" lagrad i cookien på serversidan lika väl.

Sen tror jag ingen här är så dum men jag har sett flertalet sidor som lagrar t.ex. användar id direkt i en cookie utan andra kontroller och eftersom man kan sätta cookies från klientsidan till precis vad man vill och skicka så är ju inte det så smart.

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Maj 2009

Tycker ni det är korrekt att spara kundens id i en session, och sedan när man skall ta fram data angående kunden(exempelvis meddelanden) så anger man i sqlsatsen: where id = "&session("id")&", blir ju lite orolig om man nu kan ändra värdet i session("id"), och istället ange någon annans id o så plötsligt dyker en annan persons meddelanden upp.. är detta möjligt? Vad är säkrast?

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Vet inte om det går att ändra i sessionen, det borde vara möjligt. Isåfal är det ju ett rätt så osäkert sätt.. Har du en vanlig int som id är det ju väldigt lätt att hitta på en ny, en guid blir svårare då man måste hitta den. Hela funktionen med att kryptera lösenord försvinner ju dock ifall man kan använda sig av id:t istället för löenordet.

Du borde kanske lagra det krypterade lösenordet och användarnamn istället, och då hämta id:t via dem. Kanske blir segare men det blir ju klart säkrare

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
liten stuga.
Registrerad
Nov 2002
Citat:

Ursprungligen inskrivet av KentRoyal
För att det är väldigt enkelt att sniffa saker över http och även om man gör sidan "100% säker" mot XSS finns det ju ingen anledning att spara känslig data direkt i en cookie när man kan matcha "skräpdata" lagrad i cookien på serversidan lika väl.

sessioner och kakor är inte samma sak.

är det säkerhet man vill åt är http inte ett alternativ. istället väljer man https ssl.

P[a]cman äter spöken så ofta han kan.

citera mig, annars är risken överhängande att jag inte hittar tillbaka.

Trädvy Permalänk
Medlem
Registrerad
Jul 2001

Användaren kan inte ändra i sessionen.
Sessions funkar så att man sätter en kaka med ett unikt session id (detta gör systemet automatiskt). Denna kaka skickas med vid varje request, servern vet då att alla requests som skickar med samma session id är samma "användare".

Om vi tar PHP så finns det en array som heter $_SESSION[], denna kan man spara data i och det som sparas i denna array kommer att lagras på servern, den kommer inte att skickas till klienten.

Så att spara användarens idummer i sessionen är inga som helst problem. kör på det! Det enda som skulle kunna vara farligt är om någon kan komma åt din /tmp katalog på servern, då skulle dom kunna leta upp sin session fil och kanske ändra på idnummret i den. Men om någon har kommit så långt att dom kan logga in och läsa din /tmp mapp så har du mycket större problem.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

Exactamundo. Jag ser att ett av de viktigaste momenten är inputvalidering. Det är väldigt många slarviga med, fan jag är tom slarvig med det.
Jag har i pipelinen att skriva en filterklass där man sida för sida deklarerar vilka GET/POST/COOKIES som ska få finnas och vad de ska innehålla. Dock kommer det alltid in buggfixar som ska fixas innan och vips så kanske man sitter där med en SQL-inject (hänt en gång i mitt liv) eller XSS.

Nån som har något tips på färdig klass som är lätt att kasta in i befintlig app som inte kräver att man använder ett helt nytt framework?

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2002
Citat:

Ursprungligen inskrivet av pcman
sessioner och kakor är inte samma sak.

är det säkerhet man vill åt är http inte ett alternativ. istället väljer man https ssl.

Mitt misstag. Tänkte lite snett.

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."