Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy zwracanie linku do pliku jest bezpieczne
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Czy widzicie jakieś zagrożenia aby np. API zwracało bezpośredni url do pliku na dysku.
Mówię o plikach niepublicznych np. pochodzących z uploadu.

https://example.pl/upload/type/2ds8k79ikt00gapule6h.docx

Czyli zabezpieczeniem jest sama randomizacja - skoro ktoś poznał link miał do pliku dostęp, więc równie dobrze mógł do pobrać i dystrybuować poza moim portalem.
Wiem, że można zrobić metodę do pobierania za pomocą np. id pliku, z pełną autoryzacją itp. ale na serwerze jest nginx i fajnie by serwować pliki bez użycia aplikacji tylko czy niesie to jakieś zagrożenia.
Np. sprawdziłem jak FB to robi na grupie tajnej i np.
https://lookaside.fbsbx.com/file/Instrukcja...kP8JOknG6q_Fiwg
To link, który jakiś czas działał każdemu, nawet niezalogowanym. Po jakimś czasie przestał działać. Czyli autoryzacja na ich serwerze z statycznymi zasobami jest wydzielona od autoryzacji typowo aplikacyjnej.

Ten post edytował markonix 23.10.2018, 19:13:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Wszystko zależy od tego jak bardzo chcesz utrudnić życie osobom, które nie mają uprawnień do pobrania pliku. Tak naprawdę masz dwie możliwości - "losowy" link oraz stare, dobre logowanie.

W pierwszym przypadku ktoś może udostępnić link i nic z tym nie zrobisz. Co więcej, jeśli "losowy" adres można dopasować do jakiegoś wzorca, stworzenie crawlera wyciągającego wszystkie pliki to tylko kwestia czasu.

Logowanie do konta będzie wymagało jakiejś interakcji z serwerem. Na podstawie id/klucza/hasha/czegokolwiek będziesz mógł zidentyfikować plik, a następnie przepuścić go przez logowanie.

Co do Twojego przykładu z Facebookiem w tle. Na szybkiego jestem w stanie podać kilka możliwych scenariuszy:
- po pewnym czasie plik został usunięty (cron/kolejki/cokolwiek). Serwer wykrywa request do nieistniejącego pliku i przekierowuje do "skryptu" serwującego pliki. Skrypt wymaga logowania.
- plik po uploadzie automatycznie trafił do cache'u z ustawionym lifetime. Link udostępniony użytkownikowi wskazuje na cache. Po wygaśnięciu cache'u request jest przekierowany do skryptu z logowaniem
- serwer z plikami statycznymi korzysta z microservice, która weryfikuje użytkownika.
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: 8.10.2025 - 12:06