Autor Zpráva
iiic
Profil
Zdravíčko, zamýšlel jsem se nad generátory statického kódu. Moc jich neznám a tak mi třeba bude někdo schopný poradit.

Zajímá mě bezpečnostní prvek nonce ( html.spec.whatwg.org/multipage/urls-and-fetching.html#attr-nonce ) … prostě server vyšle hlavičku s náhodnými daty a každý include (tím myslím script, styl, …) musí obsahovat stejná data v atributu nonce, jinak se nenačte.

Což už není tak docela statická stránka. Něco se musí dynamicky měnit jak v samotném html kódu, tak ve hlavičkách.

Takže existuje nějaký generátor statických stránek, co by tam trošku té dynamiky přidal, alespoň takto, co se bezpečnosti týče?
Keeehi
Profil
Myslím, že u statických stránek není nonce potřeba. Nonce je tu od toho, aby chránil před chybami na dynamicky generovaných stránkách. Řekněme, že máš fórum a na něm bezpečnostní problém. Zapomněl jsi někde ošetřit při výpisu z databáze nějaké pole. Což teď umožňuje komukoliv do tvé stránky vložit jakýkoli html kód. Takže klasický persistentní XSS. Pokud stránka nepoužívá nonce, útok proběhne úspěšně. Pokud nonce používá, script vložený útočníkem se neprovede. Sice by do databáze mohl uložit <script nonce="abc321"> ale je mu to k prdu, jelikož dopředu neví, jaký nonce bude aktuální, až se to uživateli zobrazí. Musel by mít nehorázné štěstí, že by se ten náhodný řetězec vygeneroval úplně stejný jako ten co tam uložil.

No a teď k tomu proč nonce není potřebné u statických souborů. Do statického html souboru se nedostává uživatelský vstup. Není to třeba nijak chránit.
A pokud by se nějak útočníkovi povedlo modifikovat tvůj statický soubor, tak máš mnohem větší problém který ani nonce nevyřeší.
iiic
Profil
Už jsem k tomu něco našel a píšou něco podobného, že nonce k tomuto účelu nebyl navržen, doporučují spíše ty nové CSP hlavičky (kde ale mám obavy že podpora prohlížečů není ideální)

csp.withgoogle.com/docs/faq.html#static-content

případně prohnat ty statické soubory přes nějaký šablonovací systém… což mi taky nepřipadá jako ideální řešení.

Nic z čeho bych byl vysloveně nadšený nenacházím :(
Keeehi
Profil
iiic:
Pokud se nepletu, tak CSP jsou starší než nonce. Takže by mě hodně překvapilo, pokud by ta podpora byla horší než u nonce.

Nicméně myslím si, že to řešíš úplně zbytečně. Nebo tebe napadá nějaký útok který by dostal nebezpečný javascript do tvého statického souboru?
iiic
Profil
jops, prvně díky za odpověď, moc velký zájem toto téma dívám se nevzbudilo :(

CPC se nechovalo konstantně napříč prohlížeči s tím byla nepříjemnost, nevím jestli je to už opravené, ale byl to celkem problém.

Každopádně útok co by dostal nebezpečný javascript statického souboru je specialita, to je jasné, nic co by bylo na denním pořádku. Teoreticky ale nastat může a vím i o jednom případu, kdy se to fakt stalo,
totiž mějme situaci, kdy do statického webu vkládám javascripty 3. strany, které věřím a nastavím nonce, jenže 3. strana může vkládat další javascripty.

Jsou to různé reklamy, chaty (jako disqus a podobné), tag manager, … . Prostě třetí strana kterou chci může vkládat další scripty, které už nechci. Někdy to může být součástí funkce scriptu 3. strany a bez toho to teoreticky nemusí fungovat, pak bych byl totálně nahraný, to je jasné. Může script vkládat buď přes vlastní scope, s tím taky nic nenadělám, ale když by další scripty vkládal skrz stránku, tak tomu tím zabráním.

To jsou ale opravdu specifické případy to souhlasím, co se mi ale už stalo je, že klient chtěl nějaké záruky a mimo jiné i Ačko na securityheaders.com , říkám klidně A+ to je snadné. No a nonce je jednou z těch věcí co to hodnocení zohledňuje.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0