Wpis z mikrobloga

Ech devmirki, devmirki... co mój kumpel odkasztanił to ja nawet nie.
Ziomek od niedawna prowadzi jakiś serwis analizujący statsy graczy w pewną popularną grę online no i chciał ograniczyć liczbę zapytań do oficjalnego API więc postanowił, że statystyki będa się aktualizowac raz dziennie dla tych graczy, którzy logowali się w ciągu poprzednich 24 godzin. Żeby równomiernie rozłożyć liczbę zapytań w ciągu dnia (żeby nie poszło np. 1000 w jednej godzinie) to strzelał do API, gdy gracz się logował do appki.
Dla graczy, którzy się nie logowali, statystyki po prostu były nieaktualne, ale zaimplementował funkcjonalność, która pozwalała innym graczom wymusić aktualizację statystyk innego gracza raz na 24 godziny (odwiedzenie profilu, porównanie statystyk z tym graczem oraz zwykły przycisk wymuszający aktualizację).

No i z tym przyciskiem pojawił się problem :D appka stoi na jakimś angularze, backend to JSON-owe endpointy pisane w Sileksie (PHP) i po prostu gdy nie były spełnione warunki to ukrywał button z profilu gracza. Ktoś sobie w devtoolsach ten przycisk "pojawił" i wciskał, wypstrykując tyle zapytań, że mu zablokowali dostęp (API bez limitów, ale po nadużyciu blokują; a najprawdopodobniej ktoś pewnie curlem wysłał w uj zapytań)

A sprawa jest prosta... dane nie były sprawdzane na backendzie, czy można aktualizować, czy nie :O kolega przyjął, że skoro przycisku nie ma, to nie można odpytać endpointa. Oczywiście sam endpoint można było odpytywac też bezpośrednio poprzez cURL :D

Także tak... fajnie czasem pochodzić na devowe spotkania i posłuchać co inni #!$%@?, żeby samemu zwracać większa uwagę :D

Wielki problem to to nie jest, bo sprawa wyjaśniona i nowy klucz do API jest, no i wszystko inne działało, tylko staty były przez kilka godzin nieaktualne.

#programowanie #webdev nawet #heheszki
  • 3