Kom ihåg mig?
Home Menu

Menu


Filåtkomst i IIS

 
Ämnesverktyg Visningsalternativ
Oläst 2005-06-15, 18:49 #11
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Citat:
Originally posted by Robert@Jun 15 2005, 17:03
Page.Response.ContentType = "image/jpeg" även i .Net, men det går väl att använda Page.Response.AppendHeader(name as string, value as string) om du vill bygga din egen header.

Föresten, du nämnde aspx så då antar jag att du kör .net eller? Då kan du väl lägga en web.config fil i valfri map om du vill specialsätta regler för just den mappen. Kolla upp om det går med just säkerhet. Tänk på att alla förfrågningar till filer paserar inte .net "motorn" utan skickas av IIS'en på sidan om. Detta borde göra så att du kan ha olika rättigheter för filerna (dvs anonymous) och sedan låta din aspx-kod impersonate ett annat konto med andra rättigheter...? jaja, bara lite idéer som dök upp.
Jo, jag har kollat en hel del på detta men gått bet även här. Jag använder mig av FormsAuthentication, så har möjligheten att skydda bilderna genom att lägga in en web.config som nekar alla utom t.ex. en användare. Dock har jag inte lyckats skifta över till denna användare innan asp.net har spärrat filern. Vet inte riktigt hur man ska skifta användare på ett vettigt sätt heller.

Någon idé?
Fluffe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-15, 23:10 #12
Micke_Ns avatar
Micke_N Micke_N är inte uppkopplad
Medlem
 
Reg.datum: May 2004
Inlägg: 159
Micke_N Micke_N är inte uppkopplad
Medlem
Micke_Ns avatar
 
Reg.datum: May 2004
Inlägg: 159
Citat:
Originally posted by Fluffe@Jun 15 2005, 11:41
Jag skulle vilja neka tillträde för direkt åtkomst av alla filer i en viss katalog på min webbserver (IIS).
Alltså, t.ex ska man inte kunna skriva: http://någonsite.se/bilder/test.jpg

Men, jag vill kunna ladda bilderna från sidor som ligger på siten. D.v.s. i en html fil <img src=... >.
Har gogglat en massa, och provat alla möjliga lösningar men får resultatet att antingen kommer man inte åt filerna alls, eller så har man full åtkomst till alla filer.

Några förslag? Kanske inte går?
@ Fluffe
Exakt vad är det som du vill ha utfört? Hur du än vrider och vänder på det hela så kan du aldrig skydda en bild som visas på nätet. Man kommer alltid åt den på ett eller anant sätt.

Som jag uppfattade ditt första inlägg så vill du helt enkelt bara ladda filerna från filsystemet från en mapp som inte är tillgänglig via nätet.

Du fick ett par alternativ där du enkelt laddar upp dem via en aspx sida i IMG taggen. ge mig en tydlig bild av vad du vill ha utfört så skall jag visa i .NET (aspx ) hur man kan göra.

/M
Micke_N är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-15, 23:58 #13
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
Det är sant att man inte kan hindra besökarna från att spara eller kopiera bilderna. Det är jag den förste att erkänna:
http://www.tydal.nu/article/88
http://www.tydal.nu/article/61

Men som jag fattade frågan vill han inte att det ska gå att nå bilderna på något annat sätt än via hemsidan. Dvs, man ska inte kunna ange någon URL på adressraden som går direkt till bilden.

Att bara hämta bilderna via ett skript gör ju varken till eller från, allt som sker är bara att bilderna får en annan URL, men det går att hämta dem direkt precis som tidigare.

För att göra så de enbart (nåja) blir tillgängliga genom img-taggen på en viss hemsida så måste det till en ytterligare kontroll. Exempelvis slumptalslösningen som jag beskrivit.
tydal är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 08:43 #14
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Citat:
Originally posted by tydal@Jun 15 2005, 23:58
Det är sant att man inte kan hindra besökarna från att spara eller kopiera bilderna. Det är jag den förste att erkänna:
http://www.tydal.nu/article/88
http://www.tydal.nu/article/61

Men som jag fattade frågan vill han inte att det ska gå att nå bilderna på något annat sätt än via hemsidan. Dvs, man ska inte kunna ange någon URL på adressraden som går direkt till bilden.

Att bara hämta bilderna via ett skript gör ju varken till eller från, allt som sker är bara att bilderna får en annan URL, men det går att hämta dem direkt precis som tidigare.

För att göra så de enbart (nåja) blir tillgängliga genom img-taggen på en viss hemsida så måste det till en ytterligare kontroll. Exempelvis slumptalslösningen som jag beskrivit.
Mjao, slumptalslösningen är kanske inte helt optimal, jag skulle hellre satsa på en hash baserad på filnamn + dagens datum + salt-värde. Då är bilden endast "giltigt" samma dag som aspx-sidan genererade hashcoden. Dessutom slipper man lagra värdet i databasen då det går att räkna ut på direkten. Eller varför inte ta den anropandes IP och använda när du hashar fram hashvärdet?

Jag ser inte (nu är jag läste om kravet lite nogrannare) heller någon annan lösning. Det är ju trots allt ett html-resultat hos klienten som gör ett anrop mot bilden. Man kan inte förlita sig på refererers heller...
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 10:13 #15
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Ok, var nog lite otydlig i min specifikation. Att en användare laddar ner bilden när han/hon väl får upp den bekommer mig inte. Håller på med en applikation som är användarbaserad. Och bilderna som administratören tilldelar användarna ska enbart kunna ses av den valda användaren. Ska därför inte vara möjligt att kunna ladda dem genom att ange direktlänk.

Tror jag funnit en acceptabel lösning. Finns tydligen möjlighet att i asp.net skriva en egen httpHandler och sedan koppla denna till specifika filtyper. I handler kan man titta på hur förfrågan inkommit och ta ställning till vad som ska göras. På detta sätt kan man även skydda sig från extern länkning (om man nu vill det).

Får utvärdera möjligheterna nu under förmiddagen.
Fluffe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 10:28 #16
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
tydal tydal är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 130
> Och bilderna som administratören tilldelar användarna ska enbart kunna
> ses av den valda användaren. Ska därför inte vara möjligt att kunna ladda
> dem genom att ange direktlänk.

Men den valda användaren ska väl kunna ladda dem genom att ange direktlänk?

I så fall är det ju inga problem. Du gör som Micke N tidigare beskrivit med LoadImage.aspx och lägger bilderna utanför wwwroot. Sen blir ju villkoret för att visa bilden att den inloggade användaren har fått den tilldelad sig, vilket du lämpligen håller reda på i en databas.
tydal är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 14:00 #17
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Citat:
Originally posted by tydal@Jun 16 2005, 10:28
> Och bilderna som administratören tilldelar användarna ska enbart kunna
> ses av den valda användaren. Ska därför inte vara möjligt att kunna ladda
> dem genom att ange direktlänk.

Men den valda användaren ska väl kunna ladda dem genom att ange direktlänk?

I så fall är det ju inga problem. Du gör som Micke N tidigare beskrivit med LoadImage.aspx och lägger bilderna utanför wwwroot. Sen blir ju villkoret för att visa bilden att den inloggade användaren har fått den tilldelad sig, vilket du lämpligen håller reda på i en databas.
Hehe.. förlåt, jag är värdelös på specifikationer. En annan faktor i det hela är att jag använder en inköpt modul som har begränsningar i uppladdning av bilderna. Bilderna måste med andra ord ligga "internt".

Men jag skrev en httpHandler, och drar igenom alla .jpg bilder genom den. Fungerar fint nu. En bonus man får genom denna lösningen är att man skyddar även bilderna från länkning på ett snyggt sätt. Bilden blir inte bara spärrad, utan man kan byta ut dem mot en annan bild som säger t.ex. "Besök bla bla för korrekt bild", om det nu är något man vill.

Tackar alla för hjälpen!
Fluffe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 14:39 #18
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Citat:
Ursprungligen postat av Fluffe
Citat:
Ursprungligen postat av tydal
> Och bilderna som administratören tilldelar användarna ska enbart kunna
> ses av den valda användaren. Ska därför inte vara möjligt att kunna ladda
> dem genom att ange direktlänk.

Men den valda användaren ska väl kunna ladda dem genom att ange direktlänk?

I så fall är det ju inga problem. Du gör som Micke N tidigare beskrivit med LoadImage.aspx och lägger bilderna utanför wwwroot. Sen blir ju villkoret för att visa bilden att den inloggade användaren har fått den tilldelad sig, vilket du lämpligen håller reda på i en databas.
Hehe.. förlåt, jag är värdelös på specifikationer. En annan faktor i det hela är att jag använder en inköpt modul som har begränsningar i uppladdning av bilderna. Bilderna måste med andra ord ligga "internt".

Men jag skrev en httpHandler, och drar igenom alla .jpg bilder genom den. Fungerar fint nu. En bonus man får genom denna lösningen är att man skyddar även bilderna från länkning på ett snyggt sätt. Bilden blir inte bara spärrad, utan man kan byta ut dem mot en annan bild som säger t.ex. "Besök bla bla för korrekt bild", om det nu är något man vill.

Tackar alla för hjälpen!
Vart har du lagt httphandlern? Jag gjorde en url rewritefunktion en gång och lade den i Application_BeginRequest i global.asax.vb men problemet jag hade var att (nästan) endast aspx-filer skickades in i .net-"motorn", resten går som vanliga filanrop på sidan om. Så jag antar att du inte tar hand om anrop till filer med extensionen .jpg i din httphandler.... eller vilket trick kör du med?
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-16, 15:33 #19
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Fluffe Fluffe är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 44
Citat:
Ursprungligen postat av Robert
Citat:
Originally posted by -Fluffe@Jun 16 2005, 14:00
Citat:
Ursprungligen postat av tydal
> Och bilderna som administratören tilldelar användarna ska enbart kunna
> ses av den valda användaren. Ska därför inte vara möjligt att kunna ladda
> dem genom att ange direktlänk.

Men den valda användaren ska väl kunna ladda dem genom att ange direktlänk?

I så fall är det ju inga problem. Du gör som Micke N tidigare beskrivit med LoadImage.aspx och lägger bilderna utanför wwwroot. Sen blir ju villkoret för att visa bilden att den inloggade användaren har fått den tilldelad sig, vilket du lämpligen håller reda på i en databas.
Hehe.. förlåt, jag är värdelös på specifikationer. En annan faktor i det hela är att jag använder en inköpt modul som har begränsningar i uppladdning av bilderna. Bilderna måste med andra ord ligga "internt".

Men jag skrev en httpHandler, och drar igenom alla .jpg bilder genom den. Fungerar fint nu. En bonus man får genom denna lösningen är att man skyddar även bilderna från länkning på ett snyggt sätt. Bilden blir inte bara spärrad, utan man kan byta ut dem mot en annan bild som säger t.ex. "Besök bla bla för korrekt bild", om det nu är något man vill.

Tackar alla för hjälpen!

Vart har du lagt httphandlern? Jag gjorde en url rewritefunktion en gång och lade den i Application_BeginRequest i global.asax.vb men problemet jag hade var att (nästan) endast aspx-filer skickades in i .net-"motorn", resten går som vanliga filanrop på sidan om. Så jag antar att du inte tar hand om anrop till filer med extensionen .jpg i din httphandler.... eller vilket trick kör du med?
Finns en jättesmidig funktion i web.config som gör det superenkelt att lägga till egna handlers, bara att lägga till:

<add verb="GET" path="*.jpg" type="JpgHandler, MyDll"/>

I typ anger man bara namnet på/sökvägen till klassen, och namnet på dll:en.
"Tricket" ligger sedan i att låta .jpg filer passera asp.net i IIS:en som någon nämnde i ett inlägg här tidigare.

Hehe, helt ärligt vet jag inte hur säkert det är. Kanske någon som har synpunkter?
Fluffe är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:34.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017