Gå til innhold

Anbefalte innlegg

Skal lage en intranet/ekstranet-løsning, og skal i den forbindelse ha muligheten til å legge ut filer som KUN innloggede brukere skal ha tilgang til.

 

Det som da er problemet er at hvis filen ligger på f.eks http://example.com/file.doc så kan hvem som helst laste ned denne, uavhengig om de er logget inn eller ikke.

 

Er det noen måte å unngå dette på, bortsett fra å lagre filene i databaser, eller er det eneste løsning?

Lenke til kommentar
  • 1 måned senere...
Videoannonse
Annonse
  • 2 uker senere...
Bare for å slenge ut et spørsmål i samme slengen, egentlig: Er det mulig å ha en slags .htaccess i asp/asp.net? som setter rettigheter til en mappe?

9276533[/snapback]

I ASP.NET er dette løst vha web.config. Der kan man sette opp sikkerhet på mappe- og fil-nivå. Du kan lese mer om dette i artikkelen User Authorization in Sub-Directories

 

I ASP 3.0 har man ingen web.config og men må derfor gjøre dette på en annen måte. Den mest vanlige måten er nok å legge filene i en mappe hvor ingen har tilgang og deretter streame de til autoriserte brukere. Dersom det ikke er veldig viktig med god sikkerhet kan man evt. lagre filene med filnavn som er umulig å gjette. Men det er definitivt ingen sikker metode...

Lenke til kommentar

Til ghstoe, fra siden http://psacake.com/web/if.asp

 

When you serve a document from a Web server, you might want to immediately prompt the user to save the file directly to the user's disk, without opening it in the browser. However, for known MIME (Multipurpose Internet Mail Extensions) types such as Microsoft Word ("application/ms-word"), the default behavior is to open the document in Internet Explorer.

 

<%
'--------------------------------------------
Response.Buffer = True
Dim strFilePath, strFileSize, strFileName

Const adTypeBinary = 1

strFilePath = "C:\ whatever the path is "
strFileSize = ... the size of file .. optional
strFileName = the file na,e

Response.Clear

'8*******************************8
' Requires MDAC 2.5 to be stable
' I recommend MDAC 2.6 or 2.7
'8*******************************8
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

strFileType = lcase(Right(strFileName, 4))

' Feel Free to Add Your Own Content-Types Here
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select


Response.AddHeader "Content-Disposition", "attachment; filename= strFileName
Response.AddHeader "Content-Length", strFileSize
' In a Perfect World, Your Client would also have UTF-8 as the default
' In Their Browser
Response.Charset = "UTF-8"
Response.ContentType = ContentType

Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing

%> 

Lenke til kommentar

Løsningen på http://psacake.com/web/if.asp forutsetter vel at filene som bare dem utvalgte skal ha tilgang til lagres utenfor selve siten (dvs utenfor wwwroot). Dermed er det bare asp-scriptet som krever passord som kan få tak i filene. Hvis man derimot som site-eier bare har tilgang til selve siten, da må man jo legge alle filene der, dvs innenfor wwwroot. En mulig løsning er da å krytere filene med passordet til dem utvalgte og la så det passordkrevende asp-scriptet dekryptere filene med passordet som brukerne taster inn. Hvis passordet er riktig, kommer filene dekrytert til brukerne, men ellers bør scriptet sende møl som takk for hackinga, hihi.

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...