autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfphp7 je opravdu...
TRANSCRIPT
![Page 1: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/1.jpg)
Webové aplikace
Autentizace, uživatelsky orientované
aplikace, internacionalizace a lokalizace
Připravil: Ing. Jiří Lýsek, Ph.D.
Verze: 13. 2. 2019
![Page 2: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/2.jpg)
Autentizace
• Proces ověření identity uživatele
• Obvykle pomocí loginu a hesla
– login je unikátní
• někdy email (problém se změnou)
– heslo je "klíč"
strana 2
![Page 3: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/3.jpg)
Jiné způsoby autentizace
• něco znát
– heslo, pin
• něco mít
– klíč, čip, mobil pro opsání kódu, certifikát…
• někým být
– otisky prstů, oční sken, rozpoznání obličeje
• => vícestupňové ověřování
– kombinace
strana 3
![Page 4: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/4.jpg)
Autentizace - uložení hesla
• plain text
– někdy se používá přímo v kódu!!!
• hash a salt
– nepoužívat md5 ani sha1
• nový modul v PHP (5.5.0)
– password_hash()
– password_verify()
strana 4
![Page 5: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/5.jpg)
Práce se saltem - schema
strana 5
![Page 6: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/6.jpg)
Autentizace - zabezpečení
• Můžeme omezit počet pokusů pro
přihlášení za časovou jednotku
– je možné upozornit administrátora
• Je možné vyžadovat heslo minimální
délky s rozmanitými znaky, aby byl
ztížen útok hrubou silou
• Salt chrání shodná hesla v DB
• Nejlepší je 2F ověření
strana 6
![Page 7: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/7.jpg)
Napadení hashe
• kolize hashů
– 2 jiné řetězce generují stejný hash
• brute-force
– hledání hesla zkoušením kombinací
– proto musí být hashovací funkce pomalá
– Pro generování hashů lze využít GPU
• desítky miliónů za sekundu (md5)
strana 7
![Page 8: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/8.jpg)
Ukázka md5 brute-force útoku
• Rychlost generování hashů za
sekundu
strana 8
Vždy na jedno jádro md5 sha1 password_hash()PASSWORD_BCRYPT
Intel Core i5 3,2GHz
PHP 5.6.17
607000 580000 15
Intel Core i5 3,2GHz
PHP 7.0.4
1030000 1030000 15
Akela PHP 5.6.16 406000 390000 15
Intel Core 2 Duo 2,1GHz
PHP 7
800000 715000 10
PHP7 je opravdu
rychlejší!Heslo délky 6 a-z:
308 915 776
![Page 9: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/9.jpg)
Autorizace v SPA aplikacích
• REST zakazuje použít session
• Používají se tokeny
– Token obsahuje datovou část a kontrolní
součet, který zabraňuje svévolné
modifikaci
– Klíč je znám jen na backendu
– Např. JWT
strana 9
![Page 10: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/10.jpg)
Ukládání uživatelských atributů
• Uživatel může v aplikaci provádět
různá nastavení
– není vhodné ukládat vše do jedné
tabulky, např. ''users"
– vytvoříme např. tabulku adres, tabulky
nastavení pro jednotlivé moduly apod.
– někdy je vhodné volitelné nastavení
ukládat pod identifikátory (není nutné
měnit strukturu DB)
strana 10
![Page 11: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/11.jpg)
Ukládání uživatelských atributů
strana 11
nutná
změna DBsložitější
realizace, bez
nutnosti měnit DB
co když
potřebuju
evidovat nové
nastavení?
![Page 12: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/12.jpg)
ACL model
• Access Control List
– Řídí přístup uživatel ke zdrojům
• Obvykle je realizován pro skupiny (role)
– Uživatelé ve skupinách
– Může se dědit
• Každá skupina má seznam povolených
akcí pro dané zdroje
– Lze realizovat i zakázané akce
strana 12
![Page 13: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/13.jpg)
ACL
strana 13
![Page 14: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/14.jpg)
ACL
$group = $currentUser->getGroup();
if($group->hasPerm('delete_user')) {
$anotherUser->delete();
} else {
showError('Permission denied');
}
strana 14
![Page 15: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/15.jpg)
Internacionalizace a lokalizace
strana 15
![Page 16: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/16.jpg)
Internacionalizace a lokalizace - proč?
• Zahraniční návštěvníci/zákazníci
– naši nebo našich zákazníků
– jsme země uprostřed Evropy
• ale malá
– internet je celosvětový
strana 16
![Page 17: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/17.jpg)
Internacionalizace
• Proces rozšíření aplikace, aby byla
schopná pracovat v jiných prostředích
– je to hledisko návrhu aplikace
– jen potenciálně, nemusí se to nikdy stát
• Zkratka i18n
– Internacionalisation
strana 17
![Page 18: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/18.jpg)
Lokalizace
• Proces přizpůsobení aplikace
lokálnímu prostředí
– Děje se vícekrát, podle počtu trhů kde
prodáváme produkt
• Zkratka l10n
– localisation
strana 18
![Page 19: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/19.jpg)
i18n a l10n
• Není to drahé, ale je potřeba systém
navrhnout a vyvíjet přímo s podporou
• Nejde udělat vše
• Pro správce stránek je to HODNĚ
práce navíc
– Místo jednoho webu má najednou n
webů
strana 19
![Page 20: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/20.jpg)
Hlavní znaky
• Možnost přepnout/nastavit
– jazyk
– formát data
– první den týdne
– měnu
– jednotky
– směr textu (např. zprava doleva)
– způsob výpočtu daně, spotřeby, …
– …
strana 20
![Page 21: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/21.jpg)
Na co je potřeba myslet
• Data v DB
• Statické texty v šablonách
• Krátké hlášky (např. chyby)
generované z PHP nebo JS
• Texty v obrázcích
– Design
– Obsah
• Rozdíly v CSS
strana 21
![Page 22: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/22.jpg)
Data v DB 1
• Pro každý jazyk samostatná tabulka
– Někdy vhodné, protože chceme oddělit
obsah pro různé jazyky
• articles_cze, articles_eng
• news_cze, news_eng
• products_cze, products_eng
strana 22
přidání jazyka znamená
modifikaci DB
![Page 23: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/23.jpg)
Data v DB 2
• Každá entita na vlastním řádku
– Někdy vhodné, protože chceme oddělit
obsah pro různé jazyky
strana 23
není nutné modifikovat
DB pro další jazyk
![Page 24: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/24.jpg)
Data v DB 3
• Pro každý jazyk speciální pole u
rozdílných záznamů
– Obsah v jiných jazycích není oddělen
– Pro neexistující překlad se použije výchozí
– products
• id, title_cze, title_eng, description_cze,
description_eng
strana 24
přidání jazyka znamená
modifikaci DB, ale vše je
v jedné tabulce
![Page 25: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/25.jpg)
Data v DB 4
• Jazykově závislé texty v separátní
tabulce
– Výchozí texty přímo
– Výchozí text je
snadno dostupný
– LEFT JOIN VS
JOIN
strana 25
není nutné modifikovat
DB pro další jazyk, ale
jsou složitější SELECTy
![Page 26: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/26.jpg)
Data v DB
• Je vhodné umět zkombinovat přístupy,
jelikož každý se hodí k něčemu jinému
• Vyžaduje vhodné administrační
rozhraní
• Problém je lokalizace nepřeložených
textů
– Použije se výchozí jazyk
– Jak to poznat?
strana 26
![Page 27: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/27.jpg)
Data v DB - kde použít co?
• Máme dáno N jazyků nebo nevíme?
• Individuální tabulky/řádky
– Kde je obsah pro různé jazyky jiný
• co není nutné pro všechny mutace
– Např. články, novinky, menu, bannery, …
• Sloupce/překladová tabulka
– Kde se liší jen některé údaje
– Např. produkty eshopu, kategorie článků,
názvy parametrů, …
strana 27
![Page 28: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/28.jpg)
Data v DB - čísla, data, ceny, …
• Cena, technické parametry, data,
časy…
– Lze uložit v základní hodnotě a aplikovat
přepočet (konverzi) až při zobrazení
– Čas i se zónou
• Výhodou je, že se nemusí editovat vše
dle počtu jazyků
– Při editaci se použije buď výchozí
hodnota nebo je nutná konverze
strana 28
![Page 29: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/29.jpg)
Statické texty v šablonách
• Někdy jde o velké kusy textu
• Je možné používat identifikátory a
text ukládat samostatně jinde
– Přímo v šabloně (přehledné?)
– v DB
• klient může snadno upravit, není nutná
synchronizace
– v jiném souboru
strana 29
![Page 30: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/30.jpg)
Statické texty v šablonách
$messages = array(
"cze" => array(
"nadpis" => "Ahoj světe!",
),
"eng" => array(
"nadpis" => "Hello world!",
),
);
<h1>{nadpis|translate}</h1>
strana 30
![Page 31: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/31.jpg)
Krátké hlášky v kódu
• Pro chyby a potvrzení
• Obvykle se ukládají překlady do DB, v
kódu je např. jen výchozí verze
$message = getMessage(
"forms.register.errorTaken",
"Username already taken."
);
strana 31
identifikátor a
výchozí
![Page 32: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/32.jpg)
Krátké hlášky v JS
• Snažíme se do JS nedávat pevné
textové hlášky
– lze vložit v HTML šabloně jako skrytý
element
• JS kód lze generovat podobně jako
šablonu (pomalé)
• Napsat vlastní systém pro vyhledávání
hlášek pomocí identifikátorů v JS
strana 32
![Page 33: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/33.jpg)
Texty v obrázcích
• Snažíme se texty do obrázků nevkládat
– můžeme použít např CSS font, rotaci,
efekty…
• Obrázky mohou mít více variant
<img src="{img.png|lngimg}" />
– načte např. cze/img.png nebo eng/img.png
strana 33
filtr pro
vložení
![Page 34: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/34.jpg)
Rozdílná CSS
• Dodatečný CSS soubor načtený podle
jazyka
– Načteme např.:
• style_cze.css
• style_eng.css
– Stejné CSS třídy ale
• jiné obrázky pro pozadí
• jiné velikosti/pozice elementů
• některé elementy mohou být zneviditelněné
• …
strana 34
co směr
textu?
![Page 35: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/35.jpg)
ORM a šablony
• Je nutné mít podporu v ORM vrstvě
– názvy tabulek a sloupců se mění podle
aktuálního jazyka nebo se připojuje
tabulka s překlady
• Šablonovací systém musí umožňovat
překlady
– statické hlášky, lze řešit přes filtry
{…|totoPreloz}
strana 35
![Page 36: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/36.jpg)
SPA a REST
• REST API komunikuje v daném
jazyku, který volí frontend
– /cs/product/1513
– /en/product/1513
• Statické hlášky v šablonách stejně
jako na backendu (identifikátor +
překlad do všech jazyků)
strana 36
![Page 37: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/37.jpg)
Další informace
• Existují systémy pro strojový překlad
– nekvalitní výsledky
• Přidání nebo odebrání jazyka pro
překlad je obvykle operace vyžadující
změnu struktury databáze
– Místo identifikátorů hlášek lze jako klíč
pro vyhledání textu použít přímo výchozí
text
• Pak lze mít překlady v jedné tabulce a
neměnit DB
strana 37
![Page 38: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/38.jpg)
Další informace
• Složitější systémy pro překlady umí:
– jednotné číslo
– množné číslo
– množné číslo na základě hodnoty
• 1 program
• 3 programy
• 5 programů
strana 38
![Page 39: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/39.jpg)
Podpora ve frameworcích
• Většina frameworků podporuje překlad
statických textů v šablonách
• Problém může být ORM protože
struktura DB záleží na požadavcích
aplikace a zákazníka
– Překlady ovlivňují SQL dotazy (data jsou
v DB)
– Někdy je ORM spíš překážka
strana 39
![Page 40: Autentizace, uživatelsky orientované aplikace ...lysek/data/wa/prezentace09.pdfPHP7 je opravdu rychlejší! Heslo délky 6 a-z: 308 915 776 Autorizace v SPA aplikacích • REST](https://reader035.vdocuments.pub/reader035/viewer/2022070711/5ec97a9b900fb017c432ae2b/html5/thumbnails/40.jpg)
Checkpoint
• Proč nepoužívat session u REST API?
• Proč má být hashovací funkce
pomalá?
• Co všechno se dá lokalizovat?
• Proč je lepší internacionalizaci
aplikace provádět už od začátku?
strana 40