Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Death Walker

Stran: 1 ... 22 23 [24] 25 26 ... 31
346
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 02. 08. 2021, 21:15:42 »
Toto je ale uz implementovane v TLS vrstve, ktoru pouziva jak server tak prakticky kazdy klient v php. Okrem podpisaneho serveroveho cert mate podpisany klientsky cert. Serveru poviete aby prijimal len poziadavky od klienta ktory ma cert podpisany konkretnou autoritou. PHP vidi vlastnosti toho klientskeho certifikatu (vacsinou to treba zapnut v konfiguracii webservra). Ostatne udaje budete mat normalne v tele tej poziadavky napr. ako json.
Akorát tenhle způsob autentizace rozhodně nechcete používat na veřejném internetu, a dneska ani v intranetech. Je to uživatelsky velmi nepřívětivé.

Vzhladom k tomu ze nieco podobne sa vesterna12 snazi implementovat v PHP(usudzujem podla toho kodu co posielal), je diskutabilna uzivatelska neprivetivost irelevantna.

347
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 02. 08. 2021, 20:34:42 »
Ku klientovi sice dorazi, hned na to ale prebehne redirect na ziadanu stranku, pricom sa ten token neulozi  pretoze by bolo mozne ho zneuzit. OAuth2 funguje inak tam este server poziada cez api o token ktori si ulozi.

Vy mate ten dojem ze rozlisovacim znakom pre monolit je pritomnost session? Nie je to nahodou bezstavovost aplikacie? Session do aplikacie stavovost nezanasa. Maximalne si nejaka lopata moze do tej session zacat ukladat stavove premenne, ale to sa da odchytit pri code rewiev.
Token dorazí ke klientovi, takže uživatel ho může získat a může si ho uložit. Což ale vůbec ničemu nevadí, protože jej nemůže vůbec nijak zneužít – je to jen potvrzení, že se přihlásil opravdu on. Je to asi jako kdyby se někdo pokoušel zneužít svou vlastní občanku.

Nic o rozlišovacích znacích monolitu jsem nepsal. Pouze jsem reagoval na vaše komentáře o monolitické aplikaci používající session. Session samozřejmě stavovost do aplikace zanáší. HTTP protokol jako takový je bezestavový, proto bylo vynalezeno to, že si server uloží stav pod nějakým identifikátorem a ten identifikátor se pak posílá klient s každým požadavkem. Tím se nad bezestavovým protokolem dá vytvořit stavovost. Takže HTTP session se používá právě proto, abyste do aplikace používající nestavové HTTP dostal stavovost. Ve stavu si pak můžete uložit třeba o jakého se jedná uživatele nebo jaké zboží má právě v košíku. Když si server nepamatuje stav, tyhle informace si musí pamatovat klient a předat je serveru pokaždé, když jsou potřeba.

No a tomu principu se začalo říkat session, protože to udržuje stav, ale ne trvale, pouze po dobu práce uživatele s tou aplikací. Což je v angličtině právě „session“, v češtině by tomu bylo asi nejblíž „sezení“ nebo „seance“.

Co je HTTP session se dočtete třeba na Wikipedii, kdybyste mi to nevěřil.

"komentáře o monolitické aplikaci používající session" - mozete to odcitovat presne kde som o niecom takomto hovoril. Ci zese len zavadzate.

Vy evidentne nepoznate rozdiel medzi bezstavovym protokolom (o ktorom pisete vy) a bezstavovou aplikaciou o ktorej som pisal ja.

Btw. to myslite vazne "Ta OWASP doporučení jsou bohužel taková nestrukturovaná směska lidové moudrosti, která nebere v potaz vývoj."? Dufam ze netvorite nic kde na bezpecnosti naozaj zalezi...

348
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 02. 08. 2021, 20:27:16 »
Tolik zbytečných vět.

Jj, gish gallop je jeho oblubeny argumentacny klam, nie len tu :D

349
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 02. 08. 2021, 20:25:16 »
Všechny komponenty dostanou certifikát generovaný z klíče. Nevadí, že si někdo stáhne certifikát a řetězec dešifruje, protože neobsahuje nic citlivého.

Toto je ale uz implementovane v TLS vrstve, ktoru pouziva jak server tak prakticky kazdy klient v php. Okrem podpisaneho serveroveho cert mate podpisany klientsky cert. Serveru poviete aby prijimal len poziadavky od klienta ktory ma cert podpisany konkretnou autoritou. PHP vidi vlastnosti toho klientskeho certifikatu (vacsinou to treba zapnut v konfiguracii webservra). Ostatne udaje budete mat normalne v tele tej poziadavky napr. ako json.

Btw. asymetricke kryptovanie funguje opacne ako popisujete. Spravu moze zasifrovat ktory kolvek odosielatel na zaklade verejneho kluca, desifrovat ju moze len prijemca na zaklade jeho privatneho kluca. Podpis pre overenie totoznosti generuje vlastnik privatneho kluca a ktokolvek ho moze overit pomocou verejneho kluca. 

350
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 17:03:14 »


Ku klientovi sice dorazi, hned na to ale prebehne redirect na ziadanu stranku, pricom sa ten token neulozi  pretoze by bolo mozne ho zneuzit. OAuth2 funguje inak tam este server poziada cez api o token ktori si ulozi.

Vy mate ten dojem ze rozlisovacim znakom pre monolit je pritomnost session? Nie je to nahodou bezstavovost aplikacie? Session do aplikacie stavovost nezanasa. Maximalne si nejaka lopata moze do tej session zacat ukladat stavove premenne, ale to sa da odchytit pri code rewiev.


351
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 16:06:39 »


Tu mate popis ako sa prihlasuje do Gmailu cez Google account.
https://blog.theodo.com/2019/07/single-sign-on/
To je presne ten pripad ako sa ma JWT pouzivat. Ten token obdrzi len Gmail od GA. Klientovi vobec nedorazi pretoze si ho ukladat koli bezpecnosti nemusi.


352
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 16:00:52 »
@Death Walker: jediný kdo tu plácá hlouposti, jste vy. Pokud neumíte používat JWT, je to Váš problém. JWT si nikdy nehrálo na to, že nejde přečíst (ve standardní verzi) jde normálně dekódovat do čitelné podoby. Jak píše p. Jirsák, uložit si tam můžete co chcete. Samozřejmě validace tokenu je také na Vás, jak se poperete s invalidací vypršeného či revokovaného tokenu.

Ale na to, že obyvatelé tater, jsou ..., jsme my v ČR zvyklí :-)

Vazne? Kde som pisal ze nejde precitat, link?

353
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 14:10:03 »
Na toto trolenie fakt dnes nemam cas ani naladu. Mohol by ste apom tie citaty nevytrhavat z kontextu, nechdavaju povodny zmysel a da sa na ne odpovedat v kontexte. Vlastne vy musite, inak by ste neposuval branky tak ako to robite.

Myslim ze vesterna12 si vyberie to co mu bude vyhovovat. Nezavisle na tom ze ako vzdy vytrolite tych co nemaju rovnaky nazor ako vy.


354
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 11:15:08 »
JWT sa daju sice puzit k vesetkemu moznemu, ale ak maju obsahovat autentizacne udaje, ktore si ukladate v cookie alebo v inom ulozisku prehliadaca, tak to si tam mozete ukladat rovno uzivatelske meno a heslo. To ci niekto manipuloval s autentizacnymi udajmi vam je na dve veci. Ak tie prihlasovacie udaje niekto zmeni, tak sa s nimi nebude dat prihlasit.
Mýlíte se. Kdybych z prohlížeče posílal pokaždé na server jméno a heslo, server musí tyhle údaje vzít a ověřit je proti úložišti uživatelů. Jakmile se mu s ním nepodaří spojit, nemůže pokračovat. Když ale klint místo toho pošle podepsaný lístek, o kterém server ví, že se vystavuje jenom přihlášeným uživatelům, s nikým dalším komunikovat nemusí. Podpis ověří server sám, a když podpis sedí, ví, že daný uživatel je autentizován. A může věřit údajům, které jsou na lístku uvedené – např. login uživatele, ale mohou tam být uložena třeba také oprávnění. Autentizační server v tu chvíli vůbec nemusí být dostupný, ale serverová aplikace ho vůbec nepotřebuje, bude fungovat i bez něj.
Ten token je nesifrovany, skor ci neskor ta aplikacia bude mat potrebu si siahnut k ulozisku uzivatelov, teda ak nechcete tym tokenom prenasat vsetky udaje o uzivatelovy. Uz len pre to aby dokazala zobrazit pod akym uctom je uzivatel aktualne prihlaseny. Tak isto bude musiet siahat pre dalsie udaje. Teda ak ma robit nieco viac ako ako vypisat "Ahoj uzivatel, vas token obsahuje hodnoty XXXX".
Podstata je v tom ze rovnako ako sa moze utocnik dostat k session id alebo k ulozenemu heslu, tak sa moze dostat aj k tokenu. Session mozete zmazat, heslo zmenit ale pri sposobe overovania ako popisujete mozete akurat tak cakat az ten token strati platnost. A po tu dobu pre istotu zhodit server, nech sa ten preflaknuty token neda zneuzit.
Vsimnite si aku ma domenu ten link toho tutorialu, nemyslim ze digitalocean ma jednu serverovnu...
To, že Digital Ocean nabízí nějaké služby, neznamená, že jsou všechny ty služby nejvhodnější řešení pro provoz mikroslužeb.
A k comu inemu by ste chcel pouzit synchronizaciu uloziska session medzi servermi php. Ono si php session uklada v povodnom nastaveni na disk, ja mam vyskusane ze redis je v tomto pripade daleko efektivnejsi, ako zdielanie adresara kam si php uklada sesion cez nfs.
Kazda poziadavka spusta nanovo script ktory netusi kde je sever bez toho aby si nacital premenne zo session storage.
Kde je server si aplikace samozřejmě nebude číst ze session storage ale z konfigurace.
Tak budeme mat beznu konfiguraciu, a konfiguraciu per uzivatel do ktorej si php scrip pred dobehnutim zapise data potrebne v ramci sedenia pre dalsi dotaz. Mmnt, to uz tam implementovane je, vola sa to session. Funguje to uplne inak ako v jave, flasku, alebo v AWS(ada web server) ked tak tu https://www.php.net/manual/en/book.session.php
Strkat vsetky premenne serializovane do cookie asi nechcete. Session napr z nette ma len v zaklade par kilo...
Ještě jednou. Když chcete mít aplikaci dobře horizontálně škálovatelnou, nechcete tam mít vůbec žádnou session. Zdá se, že si aplikaci nepoužívající session vůbec nedovedete představit, ale vězte, že to jde. Používá to Google, Facebook, Twitter…
Jop, staci im k tomu JWT token. :D Ale vazne, to ako pisat php script bez pouzitia session mozete vysvetlovat tvorcom drupalu, wordpressu, nette a mnohym dalsim co kedy nieco v php napisali. Obavam za ze si z vas budu tak trochu utahovat...

355
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 10:02:09 »
JWT sa daju sice puzit k vesetkemu moznemu, ale ak maju obsahovat autentizacne udaje, ktore si ukladate v cookie alebo v inom ulozisku prehliadaca, tak to si tam mozete ukladat rovno uzivatelske meno a heslo. To ci niekto manipuloval s autentizacnymi udajmi vam je na dve veci. Ak tie prihlasovacie udaje niekto zmeni, tak sa s nimi nebude dat prihlasit.

Vsimnite si aku ma domenu ten link toho tutorialu, nemyslim ze digitalocean ma jednu serverovnu...

Uvazujte aplikaciu v php, nie v jave. Kazda poziadavka spusta nanovo script ktory netusi kde je sever bez toho aby si nacital premenne zo session storage. Strkat vsetky premenne serializovane do cookie asi nechcete. Session napr z nette ma len v zaklade par kilo...

356
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 09:32:27 »
Pletete si JWT s OAuth 2 (kde se JWT také používá, to vás asi zmátlo). vesterna12 chce aplikaci rozdělit na mikroslužby. Vytvořit si závislost mikroslužeb na jednom centrálním serveru pro ukládání session není úplně to nejšťastnější řešení – někdy to samozřejmě dává smysl, ale měl by k tomu být dobrý důvod.

Nezmylil, definicia JWT sice popisuje len token ktory je zabezpeceny, ale co sa tyka jeho pouzitia tak su zauzivane praktiky ako ho bezpecne pouzit. A tiez ako ho nie bezpecne pouzit napr v angular aplikacii.

Co sa tyka php session, php nie je standalone aplikacia. Script sa spusti, nacita si session storage podla id ktore dostal, script si tam zapisuje, pri ukonceni scriptu sa session storage serualizuje, ulozi, flushne sa output buffer a skript konci. Pri dalsej poziadavke sa script spusti, nacita su session... a tak stale dokola.
Pri horizontalnom skalovani je zdielanie session jedina moznost ako udrzat aplikaciu funkcnu. A redis alebo memcache, je daleko spolahlivesie ako moutnute zdielane nfs, tam dochadza k oneskoreniam v synchronizacii...

357
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 09:18:42 »
Existuje elegantnější řešení?

Existuje, ale je trocha narocnejsie. FreeIPA server a prihlasovanie cez kerbera. Tam si nastavis ktory klient moze ku ktorej sluzbe na ktorom servri. Elegancia spociva v tom ze tym pokryjes nie len api pisane v php ale aj ostatne sluzby, ako mail server, db server a kopu dalsieho. Vyhodu to ma tu ze ticket ktory posles, moze server pouzit na autentifikaciu k dalsej sluzbe. Druha vyhoda je ta ze ak ti aj utocnik odchyti ticket tak bez keytab ktora sa neposiela, je mu ten ticket k nicomu.

358
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 08:57:06 »
Btw, i ked na toto si sa asi nepytal, tak zrusit monolit neznamena ho distribuovat na viacero servrov. Znamena to rozdelit ho na rozumne male baliky. Vzniknu ti tak male kusy kodu, ktore su zavisle na dalsich takychto balickoch, ktore sa omnoho lahsie udrzuju, su znovupouzitelne, a lahko sa pre ne pisu testy( alebo aspom k tym testom nie je taky odpor ako to pisat pre kod ktory ma cez 1000 riadkov). Nasledne ti to zlozi composer bud do aplikacie na jednom servri alebo do aplikacii na viacerich servroch.

359
Vývoj / Re:PHP - mikroslužby - autentizace
« kdy: 01. 08. 2021, 08:47:40 »
Na JWT sa vykasli, to nie je urcene na komunikaciu browser - server, ale server - server komunikaciu s tym ze server 3 strany ma JWT token ktory mu scvalil uzivatel a dal mu tak pristup k casti svojho uctu. Vytvara sa sice za pomoci browseru ale uklada sa len na servri 3 strany. Regulerne s JWT to vyriesis len redirectom na auth server, kde ak uz nie je prihlaseny tak sa prihlasi uzivatel, server overi ake si mu dal opravnenia, redirectne spat na povodny server a ten si na zaklade secret ktore dostal, vyzdvihne sez api auth servra token ktory si ulozi.

Predpokladam ze ale skor ze ani jeden server nie je servrom 3 strany. V tom pripade sa ti asi skor hodi toto https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04 . Ma to 2 vyhody. 1) na vsetkych servroch bude session id rovnake pre konkretnu session. 2) ak mas horizontalne skalovanu aplikaciu na viacerich servroch za balancerom, tak balanceru bude jedno na ktory server moze poslat poziadavku, session id bude samozrejme na vsetkych rovnake.





360
Software / Re:Zapamatovatelné zaheslování souboru
« kdy: 21. 07. 2021, 19:17:39 »

Fakticky to je stejné jako má CloudFlare...stejně tak by pomohla kamera namířená třeba na hladinu moře.
Takže jsem měl dobrý nápad (proč by to CloudFlare používali, kdyby to byl blbý nápad), ale nejde to komerčně využít.

Nie je to rovnako dobry napad. Tie lava lampy neobmedzuje hmla, ktora je na vodnej hladine vcelku casty jav a foto hmly bude mat vcelku mizivu entropiu. Co tak radsej foto vodnej pary cez mikroskop s velmi velkym zvedsenim, detail na molekuly vody v tej pare by dal dostatocnu entropiu :D

Ta entropia je tam naozaj dolezita. Cim mensia entropia, tym je mensia mnozina udajov pre bruteforce utok. Ak je entropia vysoka tak sa bruteforce neoplati.

Stran: 1 ... 22 23 [24] 25 26 ... 31