![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pracuję nad skryptem, który ma udostępniać możliwość pobrania faktury z serwera. Skrypt będzie trochę bardziej złożony, ale dla uproszczenia załóżmy, że plik ma nazwę składającą się z 20 znaków (losowych). Klient dostaje link do swojego pliku, który znajduje się w folderze rok/miesiąc/dzień/nazwa_pliku.pdf I tu rodzi się pytanie - czy istnieje możliwość, że ktoś pobierze wszystkie pliki z danego folderu (czyli potencjalne faktury innych klientów) nie znając ich nazw - oczywiście pomijając atak typu brute-force, bo przy takiej długości nazwy trafienie w nazwę pliku wymagałoby miliardów zapytań do serwera? A może macie jakiś pomysł na bezpieczniejsze umożliwianie pobrania faktur? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Moim zdaniem najlepiej zablokować htaccessem katalog z fakturami, wewnątrz niego katalogi z id użytkowników i skrypt (dostępny tylko dla zalogowanych użytkowników), który jako jedyny może pobierać dane. No a jedynym parametrem skryptu jest nazwa pliku do pobrania. Skrypt bowiem z sesji pobierałby id klienta zalogowanego i na jego podstawie ustawiał ścieżkę pobierania. W ten sposób nawet dokładne znanie nazwy i id klienta czy całej ścieżki wywali Forbidden, gdyż skrypt wykryje nieprawidłowe id klienta i zwyczajnie nie pozwoli na pobranie pliku. Ogranicza go bowiem jedynie do jego własnych faktur z katalogu o jego ID. Ja tak zablokowałem dostęp na serwerze i działa wyśmienicie. Jedyna możliwość zdobycia dostępu do pliku to przejęcie sesji i w tym momencie idealne trafienie w nazwę, a jest to niezwykle trudne z racji regeneracji sesji co 3 requesty. Ma więc mocno ograniczone możliwości ataku nawet ktoś kto sesję przechwycił.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 01:31 |