Witam Wszystkich
Zanim zadam pytanie, przedstawię zarys problemu.
Mamy projekt REST-owy, i pewien URL pobierający listę produktów wg danego producenta o określonym id.
Przykładowo //products/producer/1
jak można się domyślić zwracamy produkt wg producenta który ukrywa się pod id =1.
Zarzut wobec tej metody jest taki, co jeśli zaczniemy wpisywać sobię inne id-ki i wejdziemy na produkty innych producentów?
Ktoś wpadł na pomysł aby adres wyglądał tak //products/producer
, numer producenta przekazywany jest w tokenie JWT.
Czy jest to prawidłowe podejście?Mam tutaj na myśli przedstawiony przykład jak i ogólnie wykorzystywanie tokenów JWT do przekazywania informacji. pozdrawiam
jwt mozesz zdekodowac i zobaczyc content z latwoscia, dostep do producentow, do ktroych nie mamy prawa sie dostac to zadanie validacji baackendnu
Generalnie to złe rozwiązanie. Ale jeżeli id producenta jest czymś w rodzaju id użytkownika, to wtedy ok. Nazwa użytkownika musi być w tokenie, żeby backend mógł rozstrzygnąć, do czego ma uprawnienia.
Jwt token służy do autoryzacji i autentykacji. Jeżeli chcesz by nie było możliwości prostego podgladniecia innych producentów daj im unikalne uuid.
Genialne! Bo cookie to jest tak bardzo bezpieczniejsze od parametrów GET. Jeszcze zaproponuj że będziecie to robić POSTem żeby w adresie nie było widać tego ID. JW Tokeny niby mogą być nawet szyfrowane, ale mimo wszystko uważałbym na to i zakładał że może to nie być w pełni bezpieczne.
- Walidacja uprawnień dostępu po stronie backendu (!)
- UUID a nie sekwencyjne numerki