Avatar billede agertoft Nybegynder
22. november 2005 - 11:48 Der er 9 kommentarer og
1 løsning

Beskyttelse af filer på server ved deep links

Jeg har et site, hvor jeg gerne vil give tilladelse til at brugere, der er logget ind, kan downloade filer, som ligger på webserveren. Den enkelte bruger er medlem af nogle kategorier, som afgører hvilke mapper med filer, som denne bruger skal have adgang til at downloade. Programmeringen af dette har jeg styr på.

Mit spørgsmål er: Hvordan sikrer jeg, at en bruger udefra (som ikke er logget ind) eller en bruger som er logget ind, men uden rettigheder til en specifik mappe, skriver et "deep link" i adresselinjen og dermed får adgang til en fil, som denne ikke bør have adgang til? Er løsningen at smide hver fil i databasen eller? Kom med nogle forslag :)
Avatar billede dr_chaos Nybegynder
22. november 2005 - 12:03 #1
du kan løse det ved at streame filerne til brugeren.
på den måde kan brugeren aldrig se det direkte link.
Avatar billede snepnet Nybegynder
22. november 2005 - 12:06 #2
hvis du har lavet et "almindeligt asp.net adgangssystem" - kan du komme let ud over det ved at give dine filer en extension der processeres af .net (f.eks. aspx, ascx, ashx).
hvis du har kontrol over serveren - kan du angive at de filtyper du arbejder med (og som du vil beskytte) processeres af .net.
mvh
Avatar billede agertoft Nybegynder
22. november 2005 - 13:48 #3
dr_chaos, ja det har jeg også tænkt på. Men det giver følgende problem - hvis en person kan se headeren i den side, som henter filerne, kan denne principielt få adgang til alle filerne. Derudover kan en bruger, som på den ene eller anden måde kender til mappen med filerne finde de direkte links frem, og så er sikkerheden borte.

snepnet, kan man gøre det på den måde, at man tager et dokument - fx bestyrelsesmodereferat.doc og omdøber det til bestyrelsesmodereferat.doc.ascx så længe det ligger på serveren. Når så en person efterspørger bestyrelsesmodereferat.doc, bliver filen kopieret, omdøbe til dens originale navn, sendt til headeren på en aspx side, som sørger for at downloade den og slette filen efterfølgende? Er det en god løsning? For mig synes jeg, at det lyder underligt, at noget der burde være så normalt et problem skal løses på sådan en utrolig besværlig måde. Men det er måske sådan "man" gør?
Avatar billede dr_chaos Nybegynder
22. november 2005 - 13:49 #4
hvis du bruger filestream kan du ligge filerne i en mappe uden for IIS som der ikke er adgang til fra nettet.
Avatar billede agertoft Nybegynder
22. november 2005 - 13:51 #5
Jeg har kigget på det her eksempel, som gør det dr_chaos beskrev: http://www.csharpfriends.com/articles/getArticle.aspx?articleID=275&page=3

Men det giver jo nogle sikkerhedsproblemer stadig...
Avatar billede agertoft Nybegynder
22. november 2005 - 13:58 #6
Okay, det vil jeg lige prøve dr_chaos :)
Avatar billede dr_chaos Nybegynder
22. november 2005 - 14:00 #7
det link du gav der ligger de vist også filerne i en mappe som IUSR ikke har adgang til.
du skal bare huske at aspnet brugeren skal have adgang til mappen.
Avatar billede agertoft Nybegynder
22. november 2005 - 14:11 #8
Jeg tror jeg har fundet en løsning ;) Kører med din idé, dr_chaos. Læg et svar...
Avatar billede dr_chaos Nybegynder
22. november 2005 - 14:12 #9
gør jeg :)

jeg bruger selv metoden med nogle PDF filer som brugerne ikke skal kunne se links på :)
Avatar billede agertoft Nybegynder
09. december 2005 - 10:16 #10
Jeg åbner lige en ny tråd med dette emne da jeg har lidt problemer, håber du kan svare med der, dr_chaos og evt snepnet :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester