![]() |
![]() |
![]()
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 ![]() |
Ale nie wziąłeś pod uwagę, iż nie każdy kto zna link powinien mieć do tego pliku dostęp. Właśnie po to jest autoryzacja. Inna sprawa, że waląc brute-force, drzesz każdy napotkany plik trafiony. Czyli nie masz 1 trafienie na każdą teoretyczną możliwość ale zapewne dziesiątki lub setki, zależnie ile faktur ma klient. Jeśli zaś masz jeden katalog dla wszystkich klientów to brucik zedrze masę plików od masy ludzi. A zauważ, że faktury zawierają dane osobowe i za coś takiego można jednak "beknąć".
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) ![]() ![]() |
Ale nie wziąłeś pod uwagę, iż nie każdy kto zna link powinien mieć do tego pliku dostęp. Właśnie po to jest autoryzacja. Inna sprawa, że waląc brute-force, drzesz każdy napotkany plik trafiony. Czyli nie masz 1 trafienie na każdą teoretyczną możliwość ale zapewne dziesiątki lub setki, zależnie ile faktur ma klient. Jeśli zaś masz jeden katalog dla wszystkich klientów to brucik zedrze masę plików od masy ludzi. A zauważ, że faktury zawierają dane osobowe i za coś takiego można jednak "beknąć". Mam miliard (10^9) faktur, 20 znakowy adres pliku z zakresu [A-Za-z0-9] (62^20), 1 milion żądań na sekundę sprawdzających czy plik istnieje (10^6), czyli rocznie sprawdzamy 10^6*60*60*24*365 = ~3.15*10^13 faktur. Szansa, że przez rok trafimy na chociaż jedną fakturę wynosi 10^9/(10^6*60*60*24*365) = ~3.17*10^-5 - przypominam, że założyliśmy MILION żądań na sekundę, czyli zapytanie, odpowiedź, przeparsowanie odpowiedzi... czyli pewnie dużo ponad możliwości serwera, na którym to będzie stało, a taki ruch przecież można blokować automatycznie (IMG:style_emoticons/default/wink.gif) Każde żadanie to 10^9/62^20 = ~1.42*10^-27 szans na trafienie w fakturę. Wartości tutaj i tak są zawyżone, system nie będzie przechowywał miliadra faktur, nie będzie taki wydajny by tak szybko odpowiadać, a ruch będzie się wydawał nienaturalny, nieprawdaż? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam miliard (10^9) faktur, 20 znakowy adres pliku z zakresu [A-Za-z0-9] (62^20), 1 milion żądań na sekundę sprawdzających czy plik istnieje (10^6), czyli rocznie sprawdzamy 10^6*60*60*24*365 = ~3.15*10^13 faktur. Szansa, że przez rok trafimy na chociaż jedną fakturę wynosi 10^9/(10^6*60*60*24*365) = ~3.17*10^-5 - przypominam, że założyliśmy MILION żądań na sekundę, czyli zapytanie, odpowiedź, przeparsowanie odpowiedzi... czyli pewnie dużo ponad możliwości serwera, na którym to będzie stało, a taki ruch przecież można blokować automatycznie (IMG:style_emoticons/default/wink.gif) Każde żadanie to 10^9/62^20 = ~1.42*10^-27 szans na trafienie w fakturę. Wartości tutaj i tak są zawyżone, system nie będzie przechowywał miliadra faktur, nie będzie taki wydajny by tak szybko odpowiadać, a ruch będzie się wydawał nienaturalny, nieprawdaż? (IMG:http://media.tumblr.com/tumblr_m24la4jTLj1qbsbvb.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 21:44 |