skydda filer på webserver|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
skydda filer på webserver
: : Anders : :
Kommer du hit ofta?
Medlem
Forum Posts: 506
Member Since:
January 21, 2002
sp_UserOfflineSmall Offline
1
January 17, 2003 - 6:24 pm
sp_Permalink sp_Print

Hej!
jag har gjort en hemsida där man kan logga in, som inloggad kan man bl.a. ladda upp filer och det funkar bra. Grejen är att filerna läggs i en mapp som är tillänglig från internet. Jag skulle vilja göra så att filerna åtkomliga bara när man tex är inloggad. Hur ska detta göras??

Jag har testat att lägga filerna man laddar upp i en mapp som inte är direkt tillgänglig från internet, men då kan jag inte komma åt filerna istället...
Att lösa det med htaccess är inte helle aktuellt då det blir för krångligt för den som är inloggad att hålla på med lösenord och användarnamn fler ggr.

jag kör WinXp med Apache 2.0.39 och PHP 4.2.2.
tack på förhand för alla smarta förslag 🙂 // Anders

Marty
Siktar mot toppen
Medlem
Forum Posts: 55
Member Since:
November 1, 2002
sp_UserOfflineSmall Offline
255120
January 18, 2003 - 9:09 am
sp_Permalink sp_Print

Lägg dina filer "utanför" webbplatsen och skapa ett PHP-script som tar fram dem beroende på om man är inloggad. Spara filnamn och "Content-type" i en databas. Ha ett ID associerat med varje fil och anropa scriptet med

visafil.php?id=whatever

Såhär kanske scriptet kan se ut...


<?

// sök igenom databasen och hitta filen med id whatever och lägg information i variablerna $filnamn och $contenttype.

if ($inloggad)
{
$f = fopen($filnamn, "rb");

header("Content-type: " . $contenttype);
header("Content-Disposition: inline; filename = " . $filnamn);
header("Content-length: " . strval(filesize($filnamn)));
fpassthru($f);
fclose($f);
}

?>

I det script som tar emot de uppladdade filerna får man "Content-type" av


<?
if (is_uploaded_file($fil))
{
$contenttype = $fil_type;
}
?>

Hoppas det hjälper. :bgrin:

: : Anders : :
Kommer du hit ofta?
Medlem
Forum Posts: 506
Member Since:
January 21, 2002
sp_UserOfflineSmall Offline
255278
January 18, 2003 - 2:14 pm
sp_Permalink sp_Print

Tack så mycket för svaret Marty, det verkar funka till viss del. Men alla filer blir korrupta (jag har användt den kod du gjorde nästan rakt av)... Har testat med lite olika format och allt har hittils blivit fel :((

kolla denna t.ex. (en bild med ett mönster)
http://62.95.71.164/test.php

Jag har kikat på php.net och även testat med funktionen 'readfile($filnamn)' men det blir samma sak. Vet nån vad det kan bero på??

Marty
Siktar mot toppen
Medlem
Forum Posts: 55
Member Since:
November 1, 2002
sp_UserOfflineSmall Offline
255404
January 18, 2003 - 5:36 pm
sp_Permalink sp_Print

Jag har aldrig provat det här själv. Sök efter fpassthru på php.net så kanske du får några tips.

I header-raden där det står Content-Dispositon och filename så ska filnamnet vara inom citationstecken

... filename = " . (""" . $filnamn . """)

Vet inte om det löser några problem...

: : Anders : :
Kommer du hit ofta?
Medlem
Forum Posts: 506
Member Since:
January 21, 2002
sp_UserOfflineSmall Offline
255959
January 19, 2003 - 6:25 pm
sp_Permalink sp_Print

Tyvärr gjorde det ingen skillnad. Jag har suittit hela helgen och kollat php.net och googlat men hittat nån anledning till att filerna blir korrupta, verkar jättekonstigt.
Eftersom jag inte kommer på vad felet kan va har jag börjat fundera på andra lösningar.
Skulle det funka om man har en .htaccess-fil som varje gång nån loggar ändras så att dens ip som loggar blir godkänt och att access på så sätt tillåts. Och när personen loggar ut tas det bort. Eller skulle det vara en stor säkerhetsrisk??

Eller finns det möjligtvis ett helt annat sätt annat skydda filerna??
Alla förslag mottages tacksamt!

// Anders

Mathias_2
Member
Medlem
Forum Posts: 4544
Member Since:
June 30, 2001
sp_UserOfflineSmall Offline
256124
January 19, 2003 - 11:17 pm
sp_Permalink sp_Print

.htaccess funkar ju bäst. Det är lite svårt att konfigurera, men det är säkrast. Kolla i manualen för jag kommer inte ihåg hur jag gjorde.

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
257042
January 21, 2003 - 6:00 pm
sp_Permalink sp_Print

Vet inte vad du kör för webbserver men om den stödjer Java så är det inte så svårt att skriva en Servlet som håller ordningn på inloggningar med hjälp av sessioner. Den kan sen skicka filen till användaren. Om du kan köra Java så hjälper jag gärna till.

[Edit] Nu vet jag vad du använder för webbserver, var ju bara att läsa hela meddelandet... 😉

Om du vill använda Java så behöver du installera Tomcat för att det ska fungera.

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

: : Anders : :
Kommer du hit ofta?
Medlem
Forum Posts: 506
Member Since:
January 21, 2002
sp_UserOfflineSmall Offline
257059
January 21, 2003 - 6:13 pm
sp_Permalink sp_Print

jonaz wrote: Vet inte vad du kör för webbserver men om den stödjer Java så är det inte så svårt att skriva en Servlet som håller ordningn på inloggningar med hjälp av sessioner. Den kan sen skicka filen till användaren. Om du kan köra Java så hjälper jag gärna till.

[Edit] Nu vet jag vad du använder för webbserver, var ju bara att läsa hela meddelandet... 😉

Om du vill använda Java så behöver du installera Tomcat för att det ska fungera.

Tack, men jag har redan löst det här med .htaccess.
Men jag har en fråga rörande Java om du gärna får hjälpa mig med. 🙂
https://www.nordichardware.com/forum/viewtopic.php?t=41925&sid=8913f619a77e298ebbed81dc36d5ec67

jonaz
Kommer du hit ofta?
Medlem
Forum Posts: 940
Member Since:
May 8, 2001
sp_UserOfflineSmall Offline
259588
January 26, 2003 - 2:17 pm
sp_Permalink sp_Print

: : Anders : : wrote: [quote=jonaz]Vet inte vad du kör för webbserver men om den stödjer Java så är det inte så svårt att skriva en Servlet som håller ordningn på inloggningar med hjälp av sessioner. Den kan sen skicka filen till användaren. Om du kan köra Java så hjälper jag gärna till.

[Edit] Nu vet jag vad du använder för webbserver, var ju bara att läsa hela meddelandet... 😉

Om du vill använda Java så behöver du installera Tomcat för att det ska fungera.

Tack, men jag har redan löst det här med .htaccess.
Men jag har en fråga rörande Java om du gärna får hjälpa mig med. 🙂
https://www.nordichardware.com/forum/viewtopic.php?t=41925&sid=8913f619a77e298ebbed81dc36d5ec67

Hmm... Kollade på ditt andra inlägg, rörde JavaScript och inte Java.

Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 1030
Currently Online:
Guest(s) 84
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL