Jak powinienem zabezpieczyć web api?

0

Aplikacja klienta w reactjs / angular oraz rest web api przy wykorzystaniu asp net core.
Chcę, aby zalogowany klient miał dostęp do pewnych akcji kontrolera.
Czego najlepiej użyć, aby osiągnąć ten cel?
Myślałem o json web tokenach z podziałem na role - wtedy administrator miałby pełen dostęp do modyfikacji zasobów. Jak sprawa wygląda z mechanizmem wylogowywania? Taki token jest przechowywany w local storage i przy wylogowaniu ulega niszczeniu, ale czy jeśli osoba trzecia zrobiła kopię, a czas ważności takiego tokena nie upłynął - czy można sobie wtedy jakoś z tym radzić?
Czy oprócz tokenów, można inaczej zabezpieczyć api? Podkreślę, że najbardziej mi chodzi o zabezpieczenie przed modyfikowaniem zasobów przez osoby trzecie.
Temat bezpieczeństwa jest dla mnie nowy, liczę na wyrozumiałość. Wielu z was zapewne miało już z czymś podobnym styczność, więc pytam.

1

A czy jeżeli osoba trzecia przechwyci hasło usera, to jak sobie z tym poradzić? Praktycznie jest trudno, no chyba, że np. 2FA / analizowanie logowań z adresów IP itd.

Generalnie user ma szerokie pole do popisu jeżeli chodzi o "oddanie" dostępu do konta.

Możesz np. ustawić krótką żywotność tokena i gromadzić tokeny które wystawiasz, a następnie usuwać przy wylogowaniu.

1

Nie ma idealnego rozwiązania. Jedną z opcji jest utrzymanie black listy "uniewaznionych" tokenow, ale gryzie się to z podstawowym celem użycia JWT. Najlepiej trzymać krótka ważność tokenow- niech klient w tle wykonuje co jakiś czas requesty o nowy token w czasie kiedy użytkownik jest zalogowany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1