Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: Zabezpieczenie przed zgrywaniem plików

Witam

Mam do rozwiązania problem i przed rozpoczęciem prac chciałbym zasięgnąć Waszej opinii.

Admin w panelu administratora będzie mógł dodać pliki do pobrania z serwisu.
Użytkownik (tylko zalogowany) będzie mógł te pliki pobrać.

Jakie stosujecie metody (lub jakie znacie) zabezpieczenia plików przed pobraniem przez niepowołane osoby. Inaczej mówiąc jeśli ktoś zalogowany wyśle link bezpośrednio do pliku jak zabezpieczyć żeby ta osoba (niezalogowana) nie mogła pliku pobrać?
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Zabezpieczenie przed zgrywaniem plików

Michał Stachura:
Witam

Mam do rozwiązania problem i przed rozpoczęciem prac chciałbym zasięgnąć Waszej opinii.

Admin w panelu administratora będzie mógł dodać pliki do pobrania z serwisu.
Użytkownik (tylko zalogowany) będzie mógł te pliki pobrać.

Jakie stosujecie metody (lub jakie znacie) zabezpieczenia plików przed pobraniem przez niepowołane osoby. Inaczej mówiąc jeśli ktoś zalogowany wyśle link bezpośrednio do pliku jak zabezpieczyć żeby ta osoba (niezalogowana) nie mogła pliku pobrać?

pliki mozesz trzymac poza katalogiem dostepnym bezposrednio z apache i wysylac je z poziomu php po odpowiedniej autoryzacji

konto usunięte

Temat: Zabezpieczenie przed zgrywaniem plików

Michał Stachura:
jak zabezpieczyć żeby ta osoba (niezalogowana) nie mogła pliku pobrać?

zamiast linkowac bezposrednio do pliku linkujesz do strony z parametrem, np.:
http://mojserwis/getfile.php?plik=1
(nazwa strony, parametru, jego forma bez znaczenia)

w skrypcie getfile sprawdzasz stan zalogowania uzytkownika i serwujesz mu plik w przypadku powodzenia (wysylasz zawartosc pliku oraz potrzebne naglowki).
Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: Zabezpieczenie przed zgrywaniem plików

Dzięki za odpowiedzi, to w zasadzie mi wystarczy. Już wiem jak podejść do tematu.

Temat: Zabezpieczenie przed zgrywaniem plików

Michał Stachura:
Dzięki za odpowiedzi, to w zasadzie mi wystarczy. Już wiem jak podejść do tematu.

A jeżeli do tego jeszcze nie chcesz zajechać serwera to zainteresuj się nagłówkiem Sendfile (na pewno obsługuje to apache i lighttpd).
Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: Zabezpieczenie przed zgrywaniem plików

Wojciech Małota:
A jeżeli do tego jeszcze nie chcesz zajechać serwera to zainteresuj się nagłówkiem Sendfile (na pewno obsługuje to apache i lighttpd).
Kto powiedział, że nie chcę... :).
Ok żartowałem dzieki.

Temat: Zabezpieczenie przed zgrywaniem plików

Bardzo prosta sprawa. W przypadku serwera Apache, wystarczy wstawić do katalogu z wysyłanymi plikami plik .htaccess, a w nim informację: deny from all. Pobieranie pliku możesz zrealizować poprzez wysłanie odpowiednich nagłówków po zalogowaniu użytkownika z dostępem do plików, w tym np.: header('Content-Disposition: attachment; filename="nazwapliku.txt"'); Potem odczytujesz zawartość pliku i po sprawie.

Temat: Zabezpieczenie przed zgrywaniem plików

Piotr Wittchen:
Bardzo prosta sprawa. W przypadku serwera Apache, wystarczy wstawić do katalogu z wysyłanymi plikami plik .htaccess, a w nim informację: deny from all. Pobieranie pliku możesz zrealizować poprzez wysłanie odpowiednich nagłówków po zalogowaniu użytkownika z dostępem do plików, w tym np.: header('Content-Disposition: attachment; filename="nazwapliku.txt"'); Potem odczytujesz zawartość pliku i po sprawie.

I zrób sobie test jak wygląda zużycie RAMu przy wysyłaniu 30 MB pliku tym sposobem. Potem zrób ten sam test robiąc to samo jednocześnie 10 razy :-)

Temat: Zabezpieczenie przed zgrywaniem plików

Wojciech Małota:
Piotr Wittchen:
Bardzo prosta sprawa. W przypadku serwera Apache, wystarczy wstawić do katalogu z wysyłanymi plikami plik .htaccess, a w nim informację: deny from all. Pobieranie pliku możesz zrealizować poprzez wysłanie odpowiednich nagłówków po zalogowaniu użytkownika z dostępem do plików, w tym np.: header('Content-Disposition: attachment; filename="nazwapliku.txt"'); Potem odczytujesz zawartość pliku i po sprawie.

I zrób sobie test jak wygląda zużycie RAMu przy wysyłaniu 30 MB pliku tym sposobem. Potem zrób ten sam test robiąc to samo jednocześnie 10 razy :-)

Wiem, że te dane zostaną zapisane do pamięci operacyjnej. Założyłem, że mówimy o plikach typu: zdjęcia, dokumenty, etc., które przesyła się najczęściej. Rzadko kiedy ich rozmiar sięga 30 MB. Oczywiście, jeśli będziemy przesyłać pliki o większych rozmiarach, lepiej rozwiązać problem inaczej ;-).

Następna dyskusja:

Zabezpieczenie przed SQL In...




Wyślij zaproszenie do