React v .NET projekte

PeterS

Re:React v .NET projekte
« Odpověď #15 kdy: 04. 05. 2017, 23:59:02 »
Akoze pridat stlpec k uzivatelovi max doba prihlasenia myslis?
Jo, neco takovyho.

Oka dakujem za radu :)


Re:React v .NET projekte
« Odpověď #16 kdy: 05. 05. 2017, 00:00:39 »
Akoze pridat stlpec k uzivatelovi max doba prihlasenia myslis?
Jo, neco takovyho.

Oka dakujem za radu :)
Jo sorry, teď na to koukám - samozřejmě ne k uživateli, ale k tomu tokenu - ten token má nějakou platnost, ne uživatel ;)

Kentus

Re:React v .NET projekte
« Odpověď #17 kdy: 05. 05. 2017, 01:22:18 »
Urcite sa s tym rad pohram, a o tej autorizacii tokenom som tiez uvazoval. Tu komunikaciu by som si predstavoval asi v takejto podobe:
Uzivatel posle HTTP pozadavek na server s menom a heslom, kde mu v pripade validnych udajov pride obratom token. Token sa ulozi niekde do localStorage, a pri kazdom poziadavku na server, sa prida ako parameter aj dany token. Pri odhlaseni sa vycisti aj localStorage.

Mohlo by to takto byt? Len neviem ako overovat casovu platnost tokenu. Mam ho ulozit do db s casom vytvorenia, alebo ten token by mal obsahovat zakodovany cas vytvorenia?

Gratuluji, právě jsi vymyslel obdobu cookies.... věci která tu je několik desítek let. Ale proč používat něco co funguje když můžu vynalézt vlastní kolo, že?

Re:React v .NET projekte
« Odpověď #18 kdy: 05. 05. 2017, 07:22:39 »
Gratuluji, právě jsi vymyslel obdobu cookies.... věci která tu je několik desítek let. Ale proč používat něco co funguje když můžu vynalézt vlastní kolo, že?
Pro http máš pravdu, ale kdyby se rozhodl používat websockety, tak cookies nemusí fungovat (viz např. https://elixirforum.com/t/accessing-cookies-in-phoenix-socket-connect/4731/3 ).

Pokud by věděl, že bude používat jenom http nebo že jeho BE framework podporuje cookies i pro websockety bezpečným způsobem, je samozřejmě jednodušší je použít.
« Poslední změna: 05. 05. 2017, 07:24:37 od Mirek Prýmek »

gll

Re:React v .NET projekte
« Odpověď #19 kdy: 05. 05. 2017, 14:30:03 »
V tom odkazovaném článku https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html se píše, že stačí ověřovat origin. Píše se to ve všech tutoriálech k websocketům. Zakazovat kvůli tomu používání cookies je demence.



Re:React v .NET projekte
« Odpověď #20 kdy: 05. 05. 2017, 15:23:23 »
V tom odkazovaném článku https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html se píše, že stačí ověřovat origin. Píše se to ve všech tutoriálech k websocketům. Zakazovat kvůli tomu používání cookies je demence.
Ja to neumim posoudit, nikdy jsem se nad tim nezamyslel, protoze ten Phoenix framework, ktery pouzivam, cookies pro ws nepodporuje, tak jsem to vzal jako fakt a resim to taky tokenem. Jsou to asi dva radky na dvou mistech v kodu, tak je mi to jedno a nehodlam to vic resit :)

gll

Re:React v .NET projekte
« Odpověď #21 kdy: 05. 05. 2017, 16:39:00 »
V tom odkazovaném článku https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html se píše, že stačí ověřovat origin. Píše se to ve všech tutoriálech k websocketům. Zakazovat kvůli tomu používání cookies je demence.
Ja to neumim posoudit, nikdy jsem se nad tim nezamyslel, protoze ten Phoenix framework, ktery pouzivam, cookies pro ws nepodporuje, tak jsem to vzal jako fakt a resim to taky tokenem. Jsou to asi dva radky na dvou mistech v kodu, tak je mi to jedno a nehodlam to vic resit :)

Ten token ukládáte na straně klienta kde? V local storage?

Re:React v .NET projekte
« Odpověď #22 kdy: 05. 05. 2017, 19:30:07 »
Ten token ukládáte na straně klienta kde? V local storage?
Ve Phoenixu se používá koncept "tajných dat" - BE svým tajným heslem zašifruje nějaká data, vloží je na stránku a klient se pak jimi může prokazovat jako tokenem (nevidí dovnitř, neví, co tam je a nemůže ani data upravit). Podle potřeby tenhle token obsahuje jenom nějaké id do databáze, nebo v něm můžou být přímo nějaká uživatelská data, pokud je jich málo.

Takže při načtení stránky přes http používám normálně cookies a pak pro ws tenhle zašifrovaný "token".

gll

Re:React v .NET projekte
« Odpověď #23 kdy: 05. 05. 2017, 19:48:24 »
Ten token ukládáte na straně klienta kde? V local storage?
Ve Phoenixu se používá koncept "tajných dat" - BE svým tajným heslem zašifruje nějaká data, vloží je na stránku a klient se pak jimi může prokazovat jako tokenem (nevidí dovnitř, neví, co tam je a nemůže ani data upravit). Podle potřeby tenhle token obsahuje jenom nějaké id do databáze, nebo v něm můžou být přímo nějaká uživatelská data, pokud je jich málo.

Takže při načtení stránky přes http používám normálně cookies a pak pro ws tenhle zašifrovaný "token".

Session id tedy stejně ukládáte do cookie. Ten token je něco jako csrf token. Neslouží ke kontrole přihlášení. Pochopil jsem to správně?

Re:React v .NET projekte
« Odpověď #24 kdy: 08. 05. 2017, 21:43:26 »
Session id tedy stejně ukládáte do cookie. Ten token je něco jako csrf token. Neslouží ke kontrole přihlášení. Pochopil jsem to správně?
To záleží na situaci. Nejradši mám, když aplikace vůbec nepotřebuje session id (konfiguračních dat je tak málo, že se dají všechna vložit zašifrovaná do cookie). Když je cookie/token zašifrovaný, tak se dá použít i ke kontrole přihlášení. Záleží to prostě, co od aplikace chci.

Vzhledem k tomu, že dělám prakticky jenom interní aplikace s malým množství uživatelů, často zavřené za http auth, nemusím spoustu věcí moc řešit...

PeterS

Re:React v .NET projekte
« Odpověď #25 kdy: 08. 05. 2017, 23:21:52 »
Gratuluji, právě jsi vymyslel obdobu cookies.... věci která tu je několik desítek let. Ale proč používat něco co funguje když můžu vynalézt vlastní kolo, že?

Neviem nevyznam sa v tom velmi preto ma zaujima ako sa to robi ... len som napisal svoj napad. Takze mam to teda ukladat do cookies?

Re:React v .NET projekte
« Odpověď #26 kdy: 08. 05. 2017, 23:24:22 »
Neviem nevyznam sa v tom velmi preto ma zaujima ako sa to robi ... len som napisal svoj napad. Takze mam to teda ukladat do cookies?
No hlavně musíš použít hlavu - ujasnit si, jaké informace chceš předat kam, jaké k tomu máš možnosti a jaké to má bezpečnostní konsekvence. Pokud tomu, jak říkáš, moc nerozumíš, neuděláš většinou chybu, pokud se podržíš toho, co je v daném frameworku standardní způsob.

PeterS

Re:React v .NET projekte
« Odpověď #27 kdy: 08. 05. 2017, 23:26:57 »
Neviem nevyznam sa v tom velmi preto ma zaujima ako sa to robi ... len som napisal svoj napad. Takze mam to teda ukladat do cookies?
No hlavně musíš použít hlavu - ujasnit si, jaké informace chceš předat kam, jaké k tomu máš možnosti a jaké to má bezpečnostní konsekvence. Pokud tomu, jak říkáš, moc nerozumíš, neuděláš většinou chybu, pokud se podržíš toho, co je v daném frameworku standardní způsob.

Lenze to ukladanie tokenu na strane klienta, a nasledne posielanie na server s requestom kvoli autorizacii je skor nejaky zauzivany koncept z kategorie "the best practices", a nie sucas fw nie?

Re:React v .NET projekte
« Odpověď #28 kdy: 08. 05. 2017, 23:50:52 »
Lenze to ukladanie tokenu na strane klienta, a nasledne posielanie na server s requestom kvoli autorizacii je skor nejaky zauzivany koncept z kategorie "the best practices", a nie sucas fw nie?
Zauzivany koncept je spis sessionId ulozene v cookie. Viz https://msdn.microsoft.com/en-us/library/ms178194.aspx

PetreS

Re:React v .NET projekte
« Odpověď #29 kdy: 09. 05. 2017, 00:09:17 »
Lenze to ukladanie tokenu na strane klienta, a nasledne posielanie na server s requestom kvoli autorizacii je skor nejaky zauzivany koncept z kategorie "the best practices", a nie sucas fw nie?
Zauzivany koncept je spis sessionId ulozene v cookie. Viz https://msdn.microsoft.com/en-us/library/ms178194.aspx

Ano, to by som mohol pouzit v pripade, ze by som vyuzil Views z MVC struktury ... a teraz ma napadla este jedna vec, a to co ak by som teda to view v projekte naozaj ponechal, ale bolo by to len jedno view, popripade 2 (Index - registracia a prihlasenie, a Home - kde by bola kompletne UI aplikacie v reacte). Je to dobry alebo zly napad?