Säkerhetskontroller på adminsystem

Permalänk

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?

Permalänk

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.

Visa signatur

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

Permalänk
Medlem

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 ?

Visa signatur

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.

Permalänk

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?

Permalänk
Medlem
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.

Permalänk
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.

Visa signatur

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

Permalänk

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?

Permalänk

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

Visa signatur

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

Permalänk
Medlem
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.

Visa signatur

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

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

Permalänk
Medlem

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.

Permalänk
Medlem

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?

Permalänk
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.

Visa signatur

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