Jak zabezpieczyć REST API w Spring

Odpowiedz Nowy wątek
2018-11-07 17:04
0

Cześć, chcę zrobić zabezpieczenie do REST API. Backend (w Spring Boot) i front (w JS) będzie na tym samym serwerze.

Chcę, żeby dostęp do REST API miał tylko mój front i nikt inny. Pytanie jak to zabezpieczyć? Czytałem, że można użyć Spring Security (ale tutaj też są różne techniki, tak?)

Pozostało 580 znaków

2018-11-07 17:11
2

możesz zabezpieczyć przez spring security
masz w sumie 4 mozliwosci:

-in memory config, tj. ustawiasz sobie w pamieci pojedynczego usera/admina
-config z jdbc
-config z ldap
-customowy przy implementacji interface UserDetails

Pozostało 580 znaków

2018-11-07 17:23
1

JS to nakładka na calle restowe, które odpalasz z przeglądarki klienta, więc nie da się tego zabezpieczyć. Czy utworzyć jakiś klucz, czy będziesz wymagał jakiegoś hasła - user i tak widzi co wysyła do serwera więc może sobie tak samo strzelać z Postmana czy z czegokolwiek innego. Jak nie chcesz żeby ktoś Ci nie strzelał do API to nie wystawiaj API i zrób zwykłą apkę plującą htmlem.
Security możesz użyć jeśli user, który strzela do API musi mieć jakieś uprawienienia np. odczytu, musi być potwierdzony jakoś przez Twoją apkę ale wtedy i tak wysyłasz jakiś token, wiec tak samo mogę to zrobić postmanem.

edytowany 2x, ostatnio: OtoKamil, 2018-11-07 17:24
Więc nie wiem co chciałeś napisać. Ale chyba tyle, że czy to apka plująca HTMLem czy JSONy to na jedno wychodzi w kategorii zabezpieczania. Co w zasadzie jest prawdą. - jarekr000000 2018-11-07 18:54
a co jeśli mam formularz i chcę dane zapisać do bazy? albo na podstawie danych z formularza obrobić dane z bazy? jak wtedy przesłać ten request na serwer? - discoStar 2018-11-07 19:02
@discoStar: Bierzesz dane z formularza, robisz post request do serwera. Serwer odbiera, waliduje i jeśli wszystko mu pasi to zapisuje. - eL 2018-11-08 10:17
@eL: dzięki za odpowiedź. Chodzi o zwykły POST w jsp? Jak działa taki post i jak to jest zabezpieczone? - discoStar 2018-11-08 22:41
@discoStar: Poczytaj trochę o rest i http. W dużym uproszczeniu nie możesz klientowi zabronić robienia requesta do endpointów twojego serwera jeśli są publiczne. Jeśli chcesz się zabezpieczyć to musisz zrobić jakieś uwierzytelnianie po stronie serwera aby dostęp do niektórych zasobów mieli tylko Ci którzy chcesz żeby mieli. A więc nadal mogą Cię requestować wszyscy klienci ale dostęp mają tylko nieliczni i nie ma znaczenia czy będzie to curl, postman, js, jquery czy co tam sobie jeszcze wymyślisz. - eL 2018-11-09 07:10

Pozostało 580 znaków

2018-11-07 18:50
2

BasicAuth
JWT
OAUTH2

Pozostało 580 znaków

2018-11-08 22:42
0

Co jak bym użył CORS, że tylko z mojej domeny mogą iść call'e do REST'a?

Pozostało 580 znaków

2018-11-08 22:46
Wielki Karp
0
discoStar napisał(a):

Co jak bym użył CORS, że tylko z mojej domeny mogą iść call'e do REST'a?

nie pomoże, cors latwo obejsc

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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