WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Skydda url:en till mina filer. (https://www.wn.se/forum/showthread.php?t=4788)

porra 2004-12-03 14:55

Hej allesammans, jag letar efter en asp lösning där jag kan skydda mina filer.

Du ska som medlem kunna ladda ner en fil via en länk på sidan, men om du avslutar medlemsskapet eller om du försöker att lägga en direkt länk utan att vara inloggad så ska du stoppas. Att skydda en sida är inga problem, men hur gör man det på filnivå.
Jag har en windows 2003 server som jag har fysisk kontakt med och ett medlemsregister i en MySQL databas.
Givetvis ska allt fungera automatiskt för jag tänker inte sitta och lägga upp användare för hand :rolleyes:

FredrikMH 2004-12-03 17:48

Du skickar användaren till en asp-fil. Kollar om användaren är inloggad och om den är det så skickar du headers och läser in filen? Kan inte koden själv men du har i alla fall något att gå på :)

IF online = true THEN
Skicka Headers
Läs och skicka filen
ELSE
Ge besökaren ett fel mess
END IF

Problemet är väl att du måste veta headern på filen.

zoran 2004-12-06 08:57

Citat:

Originally posted by porra@Dec 3 2004, 15:55
Hej allesammans, jag letar efter en asp lösning där jag kan skydda mina filer.

Du ska som medlem kunna ladda ner en fil via en länk på sidan, men om du avslutar medlemsskapet eller om du försöker att lägga en direkt länk utan att vara inloggad så ska du stoppas. Att skydda en sida är inga problem, men hur gör man det på filnivå.
Jag har en windows 2003 server som jag har fysisk kontakt med och ett medlemsregister i en MySQL databas.
Givetvis ska allt fungera automatiskt för jag tänker inte sitta och lägga upp användare för hand :rolleyes:

Principiellt kan du göra på två olika sätt. Nu kan inte jag ASP eller hur IIS fungerar riktigt men ett sätt vet jag fungerar iallafall. Det är om du lägger dina filer i MySQL-databasen. Sen har du helt enkelt en asp-fil som kollar sessionsvariabler, dvs om man är inloggad, och därefter antigen levererar eller nekar filen.

Ett annat sätt är ju att lägga filer utanför webbroten och sen ha ASP-fil som hämtar dem efter att ha kollat inloggningsstatus. Fast det är ju det jag är osäker ifall det funkar med ASP och IIS. Med Apache och PHP fungerar det.

/Zoran

Filip 2004-12-06 15:46

Jag har en lösning att skydda sina filer med PHP.
Efter att validerat att användaren är inloggad, skriver du ut följande uttryck.
(Jag kan inte alls ASP och vet därför inte om du kan översätta följande):
Kod:

$total="/home/sökväg/till/files/".$filename; # definierar sökvägen
Header ( "Content-Type: application/octet-stream"); # berättar att det är en fil
Header ( "Content-Length: ".filesize($total)); # berättar hur stor filen är
Header( "Content-Disposition: attachment; filename=$filename"); # berättar namnet på filen, som ska skickas
readfile($total); # filen skickas till användaren

Det handlar alltså om att skicka header information, som berättar att det är en fil som kommer.

Du kan lägga mappen 'files' utanför dokumentrooten. Då finns där inte en chans att användaren kan ladda hem dina filer, utan att gå genom scriptet.
Annars lägger du (om du kör apache) följande .htaccess-fil i mappen 'files':

Kod:

ErrorDocument 403 http://www.dindomän.com/ajabaja.asp
order mutual-failure
order deny,allow
deny from all


Filip 2004-12-06 15:49

Såg att du var i "bildbranschen". Du kanske då istället är intresserad av att skicka ut header information, som berättar att det är en bild och inte en nerladdningsbar fil. Principen är densamma, det är bara lite annorlunda header information.

esset 2004-12-06 16:32

eller gör ett script som automatiskt byter namn på alla mappar + i databasen 50 gånger om dagen :)

Hehe, fast det skyddar dem ju inte rent fysiskt antar jag.

eg0master 2004-12-06 17:27

En lösning med referer duger inte?
DVS at bara bilder där referer är den egna sajten visas? Kollar ju inte om personen är inloggad, men han måste komma via rätt "sida" iaf.
Borde väl gå at lösa via .htaccess

Filip 2004-12-06 17:43

Citat:

Originally posted by eg0master@Dec 6 2004, 17:27
En lösning med referer duger inte?
DVS at bara bilder där referer är den egna sajten visas? Kollar ju inte om personen är inloggad, men han måste komma via rätt "sida" iaf.
Borde väl gå at lösa via .htaccess

Mycket riktigt. Följande information, hittade jag på http://www.javascriptkit.com/howto/htaccess10.shtml
Finns även att läsa i en tråd: http://www.webmasternetwork.se/index.php?a...42&hl=link&s=wn

Citat:


With all the pieces in place, here's how to disable hot linking of images on your site. Simply add the below code to your .htaccess file, and upload the file either to your root directory, or a particular subdirectory to localize the effect to just one section of your site:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
Be sure to replace "mydomain.com" with your own. The above code causes a broken image to be displayed when its hot linked.
If you're feeling bitter, you can set things up so an alternate image is displayed in place of the hot linked one. The code for this is:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/nasty.gif [R,L]

Same deal- replace mydomain.com with your own, plus nasty.gif.


porra 2004-12-07 15:50

Tack alla för svaren jag fått, har inte hunnit sätta mig in i det ännu. Men .htaccess är väl uteslutet eftersom jag kör IIS. Däremot så har jag fått tips på annat håll om att man kan använda sig av web.config eller fixa en HttpHandlers. Inte för att jag vet nått om det, men jag ska försöka få lite tid över och kolla bästa alternativet.

Sedan så är det inte bilder jag ska skydda utan det är mpeg och wmv filer som måste skyddas eller krypteras på något vis.

Jag återkommer med information när jag hittat en lösning, och jag tar tacksamt emot mer tips och ider.

porra 2005-01-20 10:35

Jag har löst problemet med ett suveränt program som heter AuthentiX.
Mer information får ni på deras web http://www.flicks.com/prod.htm#authnx


Alla tider är GMT +2. Klockan är nu 03:57.

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