Vue3 + Spring boot auth

Vue3 + Spring boot auth
« kdy: 09. 08. 2021, 10:25:41 »
Dotaz do think tanku.

Doporucte, prosim, mechanismus, nebo zdroj ke studiu pro autentifikaci a autorizaci proi VUE3 typescript + Spring biit backend.

Muj stavajici dojem z javascript sveta je takovy, ze se v nem pohybuje spousta matlaku.

Je tento navod (https://www.bezkoder.com/spring-boot-vue-js-authentication-jwt-spring-security/) validni a nevnesu si do systemu nejakou desivou diru?

Muzu pouzit i klasicky session login, nepotrebuju stateless login, vykon aplikace bude brzdit DB backend.

Dik za jakekoliv hinty.


Re:Vue3 + Spring boot auth
« Odpověď #1 kdy: 09. 08. 2021, 11:31:46 »
Ten návod je validní.

Zda si do systému nevnesete nějakou děsivou díru se nedá říct bez znalosti toho, jak budete autentizaci implementovat. Pokud nepoznáte, zda není nějaká díra v tom článku, nepoznal byste ani kdybyste se v nějaké zdánlivě nepodstatné maličkosti odchýlil od toho článku a tím byste bezpečnostní díru vytvořil.

none_

Re:Vue3 + Spring boot auth
« Odpověď #2 kdy: 09. 08. 2021, 12:29:14 »
Muj stavajici dojem z javascript sveta je takovy, ze se v nem pohybuje spousta matlaku.
;D Vcetne Vas? :D

Nezlobte se na me, ale zda se, ze chcete vzit navod, kteremu nerozumite, placnout ho do nejakeho projektu a po nas chcete, abychom vam rekli, jestli to bude bezpecne... Vesteckou kouli nahodou nemate?

V podstate jedina odpoved je, ze pokud tomu nerozumite, tak sance, ze tam bude bezpecnostni dira, je relativne velka... Jestli to pouzit bych se rozhodl na zaklade dulezitosti projektu. Pokud to bude nejakej webik, kam za tyden prijdete 3x vy a jednou vase manzelka, tak klidne jo. Jestli je to projekt, za ktery budete rucit a budou ho pouzivat cizi lide, kterym vasi neznalosti muze vzniknout skoda, tak bych to nepouzil a zacal bud studovat nebo najal nekoho, kdo tomu rozumi...

Hodne stesti...

Re:Vue3 + Spring boot auth
« Odpověď #3 kdy: 09. 08. 2021, 13:40:51 »
Muj stavajici dojem z javascript sveta je takovy, ze se v nem pohybuje spousta matlaku.
;D Vcetne Vas? :D

Nezlobte se na me, ale zda se, ze chcete vzit navod, kteremu nerozumite, placnout ho do nejakeho projektu a po nas chcete, abychom vam rekli, jestli to bude bezpecne... Vesteckou kouli nahodou nemate?

V podstate jedina odpoved je, ze pokud tomu nerozumite, tak sance, ze tam bude bezpecnostni dira, je relativne velka... Jestli to pouzit bych se rozhodl na zaklade dulezitosti projektu. Pokud to bude nejakej webik, kam za tyden prijdete 3x vy a jednou vase manzelka, tak klidne jo. Jestli je to projekt, za ktery budete rucit a budou ho pouzivat cizi lide, kterym vasi neznalosti muze vzniknout skoda, tak bych to nepouzil a zacal bud studovat nebo najal nekoho, kdo tomu rozumi...

Hodne stesti...

Popravde, jako dloholety javista cumim na "moderni javascript" jako v jirikove videni.
A pri procitani dokumentace mam pocit, ze je na me namirena skryta kamera.
Treba me dojalo, ze uz JS umoznuje privatni atributy tridy, znackovanim hashtagem, privitejme JS v roce 1979. Akorat ze privatni metody jakoze nee. A ctu dal, babel podporuje privatni metody navzdory standardu sam o svy iniciative.
_O_M_G_
Pak se podivam na dokumentace frameworku, treba krucualni "State management pattern" (https://next.vuex.vuejs.org/#what-is-a-state-management-pattern). Triada state-view-actions, what a sorcery! A kdyz to prejmenujeme na model-view-controller, privitame VUEX v roce 1978. O komedii options vs composition API ve Vue psal uz Cimrman ve sve tezi o prukopnicich slepych cest.
Tolik k memu dojmu, co na me JS svet zanechal, konec breceni, zpatky k otazce.

Kdyz potrebuju ve Spring Bootu bezpecny login, prilinkuju Spring Security, zvolim implementujici class a hotovo. Je to bezpecne, je to standard, me vubec nezajima, co se uvnitr deje. Potencialne nebezpecne kroky, jako je vypnuti CSRF se musi explicitne povolovat.

A muj dotaz v kostce zni, zda v JS SPA svete existuje obdobny standard, anebo se ocekava, ze si kazdy znovu vynalezne kolo a seznami se s CSFR a SQL injecty.

Popr, zda je vhodna cesta pouziti klasicky session login s JS threadem na hlidani timeoutu a kontrolou REST API callu s redirectem na loginpage.

Vzdyt tohle musela resit uz hromada lidi, uvitam jakekoliv hinty.

Re:Vue3 + Spring boot auth
« Odpověď #4 kdy: 09. 08. 2021, 13:44:53 »
Apropos, k mymu breceni na JS vyse, to jsem bez potizi vyresil Typescriptem, za tim stoji MS a ve vysledku to dava hlavu a patu.


Re:Vue3 + Spring boot auth
« Odpověď #5 kdy: 09. 08. 2021, 14:03:53 »
A muj dotaz v kostce zni, zda v JS SPA svete existuje obdobny standard, anebo se ocekava, ze si kazdy znovu vynalezne kolo a seznami se s CSFR a SQL injecty.
Skoro jste si odpověděl sám. Chtěl jste něco řešit se Springem, tak jste se podíval, jaké na to v jeho ekosystému existují nástroje (vy to dost nepřesně nazýváte „standard“. Tak tu udělejte stejně a hledejte materiály pro Vue, které s etýkají vaší problematiky. např. Vue Mastery: Token-Based Authentication, v Awesome Vue hledej te „auth“ atd.

SQL injection se frontendu netýká. Když autentizaci uděláte správně a nebudete ukládat autentizační data do cookies, netýká se vás ani CSRF.

Že je pro Javistu stav frontendového vývoje tristní, s tím souhlasím. Ale rozhodně to není ve stavu, abyste nad tím rozhodil rukama a prohlásil, že se s tím nic dělat nedá. Ano, musíte si znovu procházet věcmi, které má svět Javy vyřešené už deset nebo dvacet let. Ale zároveň už toho dnešní frontend umí strašně moc. Ale samozřejmě se to musíte naučit.

Re:Vue3 + Spring boot auth
« Odpověď #6 kdy: 09. 08. 2021, 14:22:02 »
A muj dotaz v kostce zni, zda v JS SPA svete existuje obdobny standard, anebo se ocekava, ze si kazdy znovu vynalezne kolo a seznami se s CSFR a SQL injecty.
Skoro jste si odpověděl sám. Chtěl jste něco řešit se Springem, tak jste se podíval, jaké na to v jeho ekosystému existují nástroje (vy to dost nepřesně nazýváte „standard“. Tak tu udělejte stejně a hledejte materiály pro Vue, které s etýkají vaší problematiky. např. Vue Mastery: Token-Based Authentication, v Awesome Vue hledej te „auth“ atd.

SQL injection se frontendu netýká. Když autentizaci uděláte správně a nebudete ukládat autentizační data do cookies, netýká se vás ani CSRF.

Že je pro Javistu stav frontendového vývoje tristní, s tím souhlasím. Ale rozhodně to není ve stavu, abyste nad tím rozhodil rukama a prohlásil, že se s tím nic dělat nedá. Ano, musíte si znovu procházet věcmi, které má svět Javy vyřešené už deset nebo dvacet let. Ale zároveň už toho dnešní frontend umí strašně moc. Ale samozřejmě se to musíte naučit.

Diky, tohle jsem potreboval.

Re:Vue3 + Spring boot auth
« Odpověď #7 kdy: 10. 08. 2021, 15:52:30 »
Nebo použít standard OAuth2.

Re:Vue3 + Spring boot auth
« Odpověď #8 kdy: 19. 08. 2021, 11:58:36 »
Udelas ve Springu endpoint

/login

V body posles username a password

Ve Springu overis, ze username a password sedi v databazi, a pak si vyrobis JWT token, kde bude v claimu ten username, a ten token podepsany vratis.

Na frontendu nasledne ten JWT token ulozis do sessionstorage, a budes ho posilat s kazdym requestem ktery udelas na backend.

Na backendu pak vzdycky zkontrolujes, ze podpis toho tokenu co ti prisel je v poradku, a kdyz je, tak na zaklade tech claims co sis do tokenu dal budes delat restrikce nad operacemi, dle tvych pozadavku.

Pouziti Spring Security je pro amaterske ucely optional, neni to podminka.

Done.
« Poslední změna: 19. 08. 2021, 12:02:20 od registrovany123 »