23. maj 2000 - 22:58Der er
11 kommentarer og 1 løsning
Sikkerhed ved hjælp af mappenavne?
Jeg er ikke vildt super duper til at programmere et sikkerhedssystem, så mit spørgsmål er bare om der umiddelbart er nogen sikkerhedbrister ved at den eneste sikkerhedstest er om man kender mappenavnet.
Der er i hvert fald den ulempe, at den dag en af dine brugere sætter det på som et link på sin side, vil det kunne ses af alle, og der kan komme en søgemaskine forbi.
Har du mange brugere får du bøvl med at ændre det.
Men hvis du gør det, så brug ikke "kode", men mere i retning af "xpq47x".
Har du adgang til ASP/PHP/Perl kan du gøre det MEGET bedre!!!
Og hvordan præcist er det lige at jeg kan gøre det meget bedre, for jeg har da også overvejet adskellige muligheder med ASP og fx FileSystemObject, men jeg kan ikke helt kringle hvordan jeg skal gøre det!
På index.asp spørger du om brugernavn og password, og sammenligner med en indgang i en fil (eller database). Er det ok, sætter du en session-variabel til true. Denne tester du på alle efterfølgende asp-filer (Ikke html).
Jeg kom lige så langt, da jeg overvejede hvordan brugerne skal logge ind MEN derefter er der stadig problemet med hvordan jeg gør således at de kan se deres egne filer og de andre brugere ikke kan?
Hmm, det lyder til at blive et større projekt. Hvis hver bruger har sin egen mappe, skal du jo bare sætte forskellige passwords på mapperne. Og så skal du ikke sætte bemeldte sessionsvariabel til true, men til mappenavnet, f.eks.
session("LoggedInAs") = "MosterGerda"
og så i hver asp file i Moster Gerdas mappe undersøge om sessions-variablen er lig med "MosterGerda". Tilsvarende i de andre mapper.
Men, hvem skal opdatere siderne, og hvorfor dette hemmelighedskræmmeri (ja, dels er jeg nysgerrig, dels kunne en beskrivelse af problemet, måske lede frem til en helt anden løsning...)
Nu er problemet jo ligesom at der ikke skal ligge html sider i brugernes mapper men alle mulige forskellige filer.. Det er en slags filserver, derfor kan jeg jo ikke gøre som du siger med sessions.
/mostergerda/test.zip Hvis MosterGerda har en fil der hedder test.zip, må man kun kunne hente filen hvis man er logget ind som MosterGerda. Dette giver et ret tydeligt problem eftersom enhver der kender brugernavn og filnavn kan gå ind og downloade filen. Man kunne måske ligge filen i en mappe hvor folk ikke har læseretigheder men hvordan henter MosterGerda så filen? Jeg kan godt se at man sikkert burde bruge en eller anden form for SSL forbindelse eller sådan noget fancy noget, men det ved jeg ikke lige hvordan man gør.
Derfor var min imiddelbare lette løsning at lave nogle mapper som afspejlede bruger og kode, og derfor ikke var kendte af andre. Jeg er dog kommet på en bedre måde, nemlig at generere tilfældige mappenavne som ændres hver gang en bruger logger af og på. På den måde kan ingen vide hvad URLen er.
Sig endelig til hvis du finder en bedre løsning !
Men egentligt så var mit oprindelige spørgsmål om der er nogen sikkerhedsbrister ved at bruge mappenavne som sikkerhed. Dvs. om der er nogen måder overhovedet en bruger kan få en mappeoversigt på ell. lignende..
På en apache-server (unix) kan du sætte passwords på et katalog, som håndteres helt og aldeles af serveren - helt uden programmering. Nemt, sikkert og elegant. Hvad kører din server på? Og hvis det ikke er Apache, hvorfor skifter du aå ikke?
Jeg har også et webhotel - et ordentligt et, hehe - og der kan jeg uden videre sætte passwords på mapper. Men ok, det er Unix, og PHP (ASP mod lidt merpris). Jeg ved jo ikke hvad du kan med dit.
Just to be precise: det har mere med operativsystemet og webserver at gøre end med udviklingssprog. I unix med apache er det nemt - jeg har ikke særlig meget forstand på de der operativsystemer og webservere fra Lillesoft - eller hvad det nu hedder
Det er let nok at sætte kode på mapper i NT, vel og mærke hvis filsystemet er formateret i NTFS!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.