Gå til innhold

Sikkerhet på adminsider


Anbefalte innlegg

Jeg har begynt å lage en del websider i det siste, både for meg selv og andre, og har et spørsmål angående sikkerhet på adminsider. Disse adminsidene er det svært viktig at ingen kommer inn på, ettersom du har full kontroll på siden herfra.

 

Frem til nå har jeg benyttet meg av Apache User Authentication, med .htaccess-filer for å lagre brukernavn og passord. Men dette er neppe den beste løsningen. Jeg har tenkt litt på måter å gjøre det på, og er i stand til å programmere et system som ordner dette. Standardmåten etter å ha lett litt på nettet, ser ut til å være denne:

 

Du har en database som ser omtrent slik ut:

 

id | brukernavn | passord

 

Passordet er lagret som en md5-hash. Når noen logger inn, kjører man:

 

SELECT * FROM tbl WHERE brukernavn = '$user' AND passord = md5($password)

 

Deretter sjekker man om det finnes en rad. Finnes det ingen rader er brukernavn eller passord galt, finnes raden skal brukeren logges inn. Her kommer mitt usikkerhetsmoment.

 

For når brukeren er logget inn, starter man en session, som dette:

 

session_start();

session_register("SESSION");

$SESSION["user"] = $user;

 

Og heretter sjekker man om en bruker er logget inn, ved å se om $SESSION["user"] er definert. Alt er greit, koden funerer fint, og jeg har ingen problemer å bruke dette.

 

Men hvor sikker er denne prosessen?

 

Er dette sikkert nok til at jeg kan selge script med slik kode? Eller er dette kodesnutter som knapt er gode nok til å holde script kiddies unna en adminside for CS-klaner?

 

Og for de av dere som selger websider, hvordan pleier dere å beskytte adminsidene? Hvor langt går dere i å beskytte dem? Har noen en link til et script som er bombesikkert?

 

På forhånd takk for alle innspill.

Lenke til kommentar
Videoannonse
Annonse

Det er så sikkert som http klienten håndterer cookies og så sikkert som nettverket er mellom din server og administratoren som logger seg inn.

 

en ssl kryptert linje, https:// adresse, ville vært sikrere hvis du er paranoid.

 

hvilken version av php bruker du, se opp for folk som går direkte til en url og skriver fil.php?user=admin_user

 

$user = $_POST["user"] kan være smart å bruke istedet for bare $user som den er forhånds definert. Så slipper du at folk skriver fil.php?user=testuser etc... og kanskje får tilgang til filene på den måten.

 

og heter det ikke $_SESSION?

 

edit: modifiserte nest siste avsnitt

Lenke til kommentar

Jeg prøver å ta de fleste forhåndregler ja, jeg er bare litt redd for å ta betalt for en side som kan crackes av scriptkiddies med mer enn en halvtime til overs :p

 

https har jeg aldri brukt, hva skal til for å aktivere dette? Er jeg avhengig av webhotellet mitt for å aktivere en slik funksjon?

Lenke til kommentar

ja, det er du. mest sannsynlig får du ikke det.

 

log før innloggings forsøk så merker du om det er noen skript kiddie på gang, mest sannsynlig er det ikke noe problem. (rare IPer)

 

Så lenge du har tatt forhåndsregler mot alle variable som kan settes i URL'en, så går det nok greit. Dvs pass på variable som brukes for første gang i skriptet, og se til brukeren kan manipulere skriptet ved å sette disse i fil.php?variabel=blabla

 

Pass også på include/require funksjonen,

Hvis du for eksempel har et "index.php?action=login" system, dvs at index.php siden kaller opp login.php fila gjennom include/require for å kunne sette felles utseende på alle filene, så kan man skrive inn manuelt "index.php?action=http://mitt.domene.no/path/til/min/side.php" og vips får han kjørt sin php kode på din server/filområde

 

skrev en liten typo i første melding, skal rette den...

Lenke til kommentar

Det sikreste er vel å kjøre adminscriptet lokalt på egen pc. Det er det jeg gjør med alle mine script. Da er det jo bare folk med tilgang til din pc og som kan passord til ftp-klienten og diverse andre passord som du bestemmer at scriptet er avhengig av for å virke som kan bruke det.

Rett meg hvis jeg tar feil...

Lenke til kommentar
Tror nok ikke det er aktuelt i dette eksempelet å la fremmede folk få komme inn i hjemmet hans og bruke PC'en hans for å administrere tjenesten de betaler for.

Kanskje jeg sa det på en litt feil måte, men det jeg mente var at scriptet blir laget slik at kjøperen kan ha adminscriptet lokalt på sin pc. Kjøper har serlvfølgelig mulighet til å sette inn passord og brukernavn selv.

Lenke til kommentar

Går ikke helt klart fram hva slags system han er ute etter å lage, han sier ikke hva han tar betalt for, om det er skripting eller hosting eller begge. Det er uansett ikke gitt at kjøperen kan sitte og jobbe på serveren som hoster tjenesten. Og hvis det ikke er umulig, kommer man ikke unna en eller annen form for remote autentisering med de sikkerhetsrisker det innebærer.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...