Problematika zabezpečení REST rozhraní

Re:Problematika zabezpečení REST rozhraní
« Odpověď #15 kdy: 12. 06. 2018, 08:36:13 »
Důrazně doporučuji REST api nezabezpečovat. Ušetříte si tím hromadu starostí, které to zabezpečení přinese.

Ok no, tak jdu stavet burzovni system s verejnym API pro management fondu a nebudu to zabezpecovat, diky za super radu.


Re:Problematika zabezpečení REST rozhraní
« Odpověď #16 kdy: 12. 06. 2018, 08:38:46 »
Důrazně doporučuji nic nevymýšlet, věřte, že s nějvětší pravděpodobností to jen pos...te. Pro zabezpečení API se nejčastěji používá Basic authentication nebo JWT. Obojí je standardizované, jednoduché a nerozumím tomu, proč by implementace měla zabírat 33MB. Na obojí najdete plný pytel knihoven a bude vám to fungovat napříč jazyky a implementacemi (frameworky). Jestli si kvůli autentizaci taháte nějakou obří knihovnu, doporučuji se zamyslet, zda ji opravdu potřebujete.

Pro zabezpeceni API se pouziva nejcasteji Basic auth nebo JWT -> to je vystup z nejakeho globalniho pruzkumu, nebo jen subjektivni nazor, co kde pouzivate sam na projektech? :-)

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #17 kdy: 12. 06. 2018, 08:49:15 »
Ok no, tak jdu stavet burzovni system s verejnym API pro management fondu a nebudu to zabezpecovat, diky za super radu.

Všechny api by měli být veřejné, citlivé části jako private s omezením na firewallu na ip. Zabezpečení "heslem, oauth2, jwt,.." na api je přežitek. Stejně tak jako všechny zdrojové kódy by měli být povinně opensource.

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #18 kdy: 12. 06. 2018, 09:02:49 »
private api s omezením na firewallu na ip

Aby mě nikdo nenařkl že zabezpečení na ip je nebezpečné, či že ip se často mění (tak určitě), tak stačí namísto IP využít TXT DNS record a vůči němu se api ověří. Vzhledem k https+dnssec je to lepší než jakékoliv jiné zabezpečení.

perceptron

Re:Problematika zabezpečení REST rozhraní
« Odpověď #19 kdy: 12. 06. 2018, 09:07:46 »
Citace
Security v praxi bývají docela molochy a mám teď na mysli Spring Boot Security, která mi zhoršila start aplikace tak o 15% a o dalších 15% mi zvětšila výstupní Jar-with-dependencies.
spring security vam da oauth ak chcete a out of box vyriesi cors, csrf, prip. jwt a dalsie veci ktore na vasej urovni naimplementujete po deadline a zle

15% narast startu je drobnost. 15% narast JAR - z 30 mega na 45? nosite jar na disketach?


.

Re:Problematika zabezpečení REST rozhraní
« Odpověď #20 kdy: 12. 06. 2018, 13:40:53 »
Ok no, tak jdu stavet burzovni system s verejnym API pro management fondu a nebudu to zabezpecovat, diky za super radu.

Všechny api by měli být veřejné, citlivé části jako private s omezením na firewallu na ip. Zabezpečení "heslem, oauth2, jwt,.." na api je přežitek. Stejně tak jako všechny zdrojové kódy by měli být povinně opensource.
A tu fixní IP adresu pro uživatele zabezpečíte jak, pan{e,í} fundamentalist*o.

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #21 kdy: 12. 06. 2018, 14:23:23 »
A tu fixní IP adresu pro uživatele zabezpečíte jak, pan{e,í} fundamentalist*o.

A kdo zde mluví o uživatelích? V průvodní otázce se mluví přesně o aplikaci v js a backendu v rest, který chce zaheslovat.
Citace
Mám nějaký backend, jedno v čem napsaný, a chci mu zaheslovat REST. Frontend je zcela zvlášť, v javascriptu.
Takže frontend běží na nějakém serveru. server nemá pevnou ip? Pokud by šlo o api pro uživatele tak by tam přeci byl oauth, či jwt. Ale api je lepší míti public odpadne tím hromada starostí.

Mj fyi Eržika jak by vám moje jméno mělo napovídat je ženského původu. Ale chápu že si myslíte že cikánky nemohou programovat, že jen smrdíme na dávkách. Na dyskrymynace jsem ale zvyklá takže ok :)

.

Re:Problematika zabezpečení REST rozhraní
« Odpověď #22 kdy: 12. 06. 2018, 16:58:10 »
A tu fixní IP adresu pro uživatele zabezpečíte jak, pan{e,í} fundamentalist*o.

A kdo zde mluví o uživatelích? V průvodní otázce se mluví přesně o aplikaci v js a backendu v rest, který chce zaheslovat.
Citace
Mám nějaký backend, jedno v čem napsaný, a chci mu zaheslovat REST. Frontend je zcela zvlášť, v javascriptu.
Takže frontend běží na nějakém serveru. server nemá pevnou ip? Pokud by šlo o api pro uživatele tak by tam přeci byl oauth, či jwt. Ale api je lepší míti public odpadne tím hromada starostí.
Možná jsem negramotný, ale mohla byste mi ukázat v příspěvku slovní spojení server a frontend, ze kterého jste vyvodila, že frontend běží na serveru? Javascriptová frontend aplikace běží zpravidla na klientském počítači v prohlížeči.

Mj fyi Eržika jak by vám moje jméno mělo napovídat je ženského původu. Ale chápu že si myslíte že cikánky nemohou programovat, že jen smrdíme na dávkách. Na dyskrymynace jsem ale zvyklá takže ok :)
Žádné dyskrymynace jsem se na vás nedopustil, možná, že jste si nevšimla, ale příspěvek jsem směřoval tak, abych oslovil všechna možná pohlaví. Je mi jedno, zda jste žena, muž nebo transvestita. Fajn, přejete si, abych Vás oslovoval jako ženu, to je super, ale z názvu nicku (navíc anonymního) nelze na internetu vyvozovat opravdu nic.

gadzo

Re:Problematika zabezpečení REST rozhraní
« Odpověď #23 kdy: 12. 06. 2018, 17:05:34 »
zabezpecte pomocou token based authentication, mozete si ukutit sam, ale radsej pouzite nejaky framework/kniznicu , usetrite si nervy.
ak erzika je naozaj erzika , tak klobuk dolu , niekdo smrdi na davkach, niekto v kode [ code smell ]
ale urcite je lepsie smrdiet v kode :-D

Re:Problematika zabezpečení REST rozhraní
« Odpověď #24 kdy: 12. 06. 2018, 21:29:42 »
Typl bych si ze duvodem bude, ze basic auth nepodporuje logout.

Tak credential je pouze enkodovane v Base64 a posila se po lince. Samozrejme TLS to prekryje, ale dalsi problemy jsou napr.:
- Heslo se posila stale dokola pro kazdy request v hlavicce
- Chybi dalsi rozsirene protekce jako Nonce, TTL, request timestamp, apod.pro zamezeni reply utoku

Ale jako, pokud se jedna o interni systemy, tak to nemusi byt problem, pokud se o dalsi bezpecnost staraji firewally, nebo dalsi prvky. Samozrejme stale to plati pouze pro TLS secured pripojeni.

Diskuze je o REST rozhraní, nemusí se očekávat, že se přihlašovací údaje budou zadávat v prohlížeči. Odhlášení chybí by design, není ale běžné, že by se aplikace na pozadí sama odhlašovala, to je běžnější pro interakci s uživatelem.

Zmíněné problémy je možné vyřešit zabalením do oauth, spnego, které timestampy, Nonce, TTL mají. Mimochodem, velká část korporátních SSO používá spnego s interním AD a poté REST s basic auth zase takový problém není :).

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #25 kdy: 13. 06. 2018, 07:48:27 »
zabezpecte pomocou token based authentication, mozete si ukutit sam, ale radsej pouzite nejaky framework/kniznicu , usetrite si nervy.
ak erzika je naozaj erzika , tak klobuk dolu , niekdo smrdi na davkach, niekto v kode [ code smell ]
ale urcite je lepsie smrdiet v kode :-D

A já furt myslím že lepší je nezabezpečovat nic. Cikáni vám stejně ukradnou všecko i když to zabezpečíte. Zbytečná práce s tím. Však to píšu od začátku. Pro nás je nejlepší nemít zabezpečené nic. Máme pak jednoduší práci.

Ehm proč bych měla používat jiné jména než je moje skutečné? Vy to tak někdo děláte?  A proč?

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #26 kdy: 13. 06. 2018, 09:34:18 »
Možná jsem negramotný, ale mohla byste mi ukázat v příspěvku slovní spojení server a frontend, ze kterého jste vyvodila, že frontend běží na serveru? Javascriptová frontend aplikace běží zpravidla na klientském počítači v prohlížeči.

Máte pravdu. Jsem jen blbá ženská a tak mám pomalejší vedení. Frontend sice běží na nějakém serveru, ale to není důležité, požadavky posílá klient ze své ip. Jsem prostě blbá, ženskž by neměli programovat oni mi to říkají furt kluci tady v kanclu.

.

Re:Problematika zabezpečení REST rozhraní
« Odpověď #27 kdy: 13. 06. 2018, 10:11:29 »
Možná jsem negramotný, ale mohla byste mi ukázat v příspěvku slovní spojení server a frontend, ze kterého jste vyvodila, že frontend běží na serveru? Javascriptová frontend aplikace běží zpravidla na klientském počítači v prohlížeči.

Máte pravdu. Jsem jen blbá ženská a tak mám pomalejší vedení. Frontend sice běží na nějakém serveru, ale to není důležité, požadavky posílá klient ze své ip. Jsem prostě blbá, ženskž by neměli programovat oni mi to říkají furt kluci tady v kanclu.
Jestli jste blbá ženská, to opravdu nevím, protože se neznáme, stejně jako vy nevíte, jestli jsem blbej mužskej. Ale vztahovačná jste poměrně dost.

Naznačil jsem, že by mne zajímalo, jak jste to myslela s tím serverem. Protože pod pojmem javascriptová aplikace posílající REST dotazy si já představím React nebo Angular JS aplikaci, která se sice na začátku stáhne z webového serveru, ale veškerá komunikace probíhá z klienta. Klasická webová stránka téměř nikdy neposílá REST požadavky.

Eržika

Re:Problematika zabezpečení REST rozhraní
« Odpověď #28 kdy: 13. 06. 2018, 11:25:00 »
Protože pod pojmem javascriptová aplikace posílající REST dotazy si já představím React nebo Angular JS aplikaci, která se sice na začátku stáhne z webového serveru, ale veškerá komunikace probíhá z klienta.
Ano samozřejmě máte pravdu také jsem se v minulém příspěvku opravila.

Klasická webová stránka téměř nikdy neposílá REST požadavky.
Tady si dovolím nesouhlasit. REST komunikace probíhá ve standartních aplikacích také a to jak na straně frontendu (dotáhneme si pomocí js nějaká data z ext. rest rozhraní) a nemusí být nutně jen v uber top technologiích jako react/angular. Ale tam samozřejmě ten požadavek probíhá také ze strany klienta jak jsme si již vyjasnili.
Nicméně máme ještě kategorii rest požadavků ze strany serveru. Tj vyplním nějaký formulář, odešlu jej postem (či ajaxem či jakkoliv) na backend té app a ten se sám spojí s jiným rest api (či soapem, atp), odešle mu data, něco si uloží třeba i k sobě do db a vrátí nějaký výsledek na frontend zpátky. Tam ta komunikace ale probíhá server-server tedy i z ip serveru a naprosto nezáleží, že ten frontend je napsaný v reactu, jelikož má vlastní backend. Což je dosti častý případ. Mylně jsem si původně myslela tento případ, proto ta zbytečná diskuze.

Předpokládám ale, že zadavatel otázky myslel váš případ, tedy frontend v angularu bez jakéhokoliv backendu, s tím že komunikuje přes rest.

Eržik

Re:Problematika zabezpečení REST rozhraní
« Odpověď #29 kdy: 07. 07. 2018, 16:05:43 »
private api s omezením na firewallu na ip

Aby mě nikdo nenařkl že zabezpečení na ip je nebezpečné, či že ip se často mění (tak určitě), tak stačí namísto IP využít TXT DNS record a vůči němu se api ověří. Vzhledem k https+dnssec je to lepší než jakékoliv jiné zabezpečení.

 Eržiko, mate asi rada bdsm, protoze ve vetsim prostredi skoncite s whitelistem dlouhym jak frontou na davky. Na testovani v kancliku dobry, reseni pres proxy je rozhodne elegantnejsi pro uzivatele "klient ma pristup na jejich webitko na testovacim serveru pres usr/pwd". Https+dnssec mi pripada sympaticky na rest apicka, jinak trochu zalezi co je treba, ale nejakej stunel muze taky poslouzit dobre. Mam asi uchylku, ale obecne nejak tak rad strkam apky do tunelu kdyz to jde.