Cześć, jak należy zabezpieczyć API wykonane w Lara tak aby było ... bezpieczne. Do autoryzacji użytkowników używam jwt ale czy to wystarczy?
Jak zabezpieczyć się przed rejestracją kilku kont z tego samego adresu IP (typowy spam). Przykład: podałem link na forum do oceny projektu a ktoś z jednego adresu IP w ciągu kilku minut dodał ponad 2k rekordów.
Ja osobiście tworzę swoje własne mechanizmy ochrony, począwszy od niskopoziomowych rzeczy jak limit ilości jednoczesnych połączeń do serwera z jednego IP (np. mechanizm wbudowany w serwer nginx, dyrektywa limit_conn_zone i inne), po wbudowanie w aplikację algorytmów statystycznych, lub prosty limit np. nie można założyć więcej niż 5 kont z jednego IP w ciągu miesiąca, etc.
Genialne, czyli ludzie za jednym routerem, walcie się, bo ja sprawdzam IP.
michalos25 napisał(a):
Cześć, jak należy zabezpieczyć API wykonane w Lara tak aby było ... bezpieczne. Do autoryzacji użytkowników używam jwt ale czy to wystarczy?
Jak zabezpieczyć się przed rejestracją kilku kont z tego samego adresu IP (typowy spam). Przykład: podałem link na forum do oceny projektu a ktoś z jednego adresu IP w ciągu kilku minut dodał ponad 2k rekordów.
Ograniczaj aktywność kont, a nie ich tworzenie. Chodźby nie wiem jaki super klientów napiszesz, i tak ziomek z 2000cami proxy zrobi Ci 2000 request'ów, so what's the point? Pozwól im zakładać konta, ewentualnie usuwaj po jakimś tam czasie braku aktywności, weryfikuj e-mail, + dodać ograniczenia na pojedyncze konta.
Ewentualnie wydawaj klucze api z ograniczeniami
Nie blokuj po IP. Ten co będzie chciał zrobić krzywdę to zmieni IP, wykona atak. Możesz natomiast komuś postronnemu blokować dostęp.
Do blokowania masz w Laravel midleware funkcje throtle()
https://www.google.com/amp/s/www.cloudways.com/blog/laravel-and-api-rate-limiting/amp/
Możesz dodać recaptche, albo jakieś sprawdzanie robotów przy rejestracji i logowaniu.