Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo uploadowanych plików
xwolf
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.03.2009

Ostrzeżenie: (0%)
-----


Witam,

Mam taki problem odnośnie bezpieczeństwa plików: Zalogowane osoby mogą uploadować pliki na mój serwer. Można ustawić opcję, że aby obejrzeć plik potrzebne jest podanie hasła. Przez określony czas do pliku ma dostęp tylko osoba, która wrzuciła ten plik na serwer. Po upływie tego czasu dostęp do pliku mają wszyscy użytkownicy sieci. Jeśli plik jest chroniony hasłem, trzeba podać to hasło żeby zobaczyć plik.

Jakie rozwiązanie tego problemu jest najlepsze ?

Narazie mam taki pomysł, że po wrzuceniu pliku na serwer zmieniam jego nazwę na losowy ciąg 32 znaków i umieszczam w katalogu dostępnym publicznie. Wydaje mi się, że dopóki ktoś nie zna nazwy pliku ( ciężko odgadnąć ten ciąg znaków ) nie będzie mógł go otworzyć. Oczywiście osoba, która wrzuciła ten plik na serwer, po zalogowaniu, ma udostępniony link do tego pliku. Po upływie określonego czasu każdemu wyświetla się link do tego pliku. No chyba, że plik jest zabezpieczony hasłem, wtedy najpierw trzeba podać to hasło.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


I pamiętaj, że różne przeglądarki mogą wymagać różnych nagłówków oraz by pliczor nie wysyłać do przeglądarki w całości, lecz porcjami lub nawet po jednej linijce. Poszukaj na forum, download plików był omawiany wielokrotnie, ja np. realizuję to takim kodem:

  1. <?php
  2. header("Content-Type: $mime");
  3.   header("Expires: ".gmdate('D, d M Y H:i:s')." GMT");
  4.   header("Content-Disposition: attachment; filename = $nazwa");      //Dla IE:
  5.   header("Cache-Control: must-revalidate, post-check = 0, pre-check = 0");
  6.   header("Pragma: public");
  7.   header("Content-Disposition: attachment; filename = $nazwa");      // Dla reszty:
  8.   header("Pragma: no-cache");
  9.   header("Content-Length:".$wielkosc);
  10.   $file = fopen($czyi, "r");
  11.   while(!feof($file)){
  12.      print fread($file,$down_rate);
  13.   }
  14.   fclose($file);
  15. ?>
- $down_rate to wielkość porcji, warto też wstawić nazwę, typ mime oraz rozmiar pliku. W ten sposób po prostu wysyłasz dowolny zlepek bajtów jako cokolwiek pod dowolną nazwą. To w interesie usera jest, by nie pobierać i otwierać co popadnie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 05:37