Přidání vlastních HTTP hlaviček pro Content Security Policy

- radas
 - Člen | 226
 
Ahoj,
potřebuju přidat vlastní hlavičky pro Content Security Policy do každého
HttpResponse. Zatím jsem to vyřešil přidáním do bootstrap.php:
$container = $configurator->createContainer();
$httpResponse = $container->getByType('Nette\Http\Response');
$httpResponse->setHeader('Content-Security-Policy', "...");
$httpResponse->setHeader('X-Content-Security-Policy', "...");
$httpResponse->setHeader('X-WebKit-CSP', "...");
Sice to bez problémů funguje, ale jde mi o to, jestli by nešel zápis přímo v config.neon tak, aby se kód dostal do metody initialize() v DI containeru. Podobně, jako se konfiguruje hlavička X-Frame-Options
Nebo bych si musel napsat rozšíření pro DI? To by mi přišlo příliš složité, kvůli něčemu tak jednoduchému.
Díky

- enumag
 - Člen | 2118
 
Myslím že HttpExtension to umí.
http:
	headers:
	    Content-Security-Policy: ...
        X-Content-Security-Policy: ...
https://api.nette.org/…ion.php.html#20
Editoval enumag (9. 1. 2016 10:51)

- radas
 - Člen | 226
 
Ahoj,
definuju CSP v config.neon, jako psal @enumag výše a nyní bych rád
implementoval CSP verze 3, kde potřebuju přidat parametr strict-dynamic:
nonce, ale doplněný s každým requestem o jiný náhodný string. Zároveň
je tento string potřeba dynamicky měnit i v atributu nonce v tagu
<script>. Nevíte prosím někdo, jak toho docílit?

- mrtnzlml
 - Člen | 140
 
Pokud to začíná být složitější, tak tento typ problému řeším pomocí rozšíření DIC. Můžeš se inspirovat třeba zde. Není na tom nic komplikovaného. Můžeš potom tu random logiku schovat v rozšíření a případně si to rovnou předávat do služby, která se stará o část stránky vykreslující script tag.

- jiri.pudil
 - Nette Blogger | 1034
 
Poohlédnul bych se u @spaze (csp-config + nonce-generator). Zjevně to zatím není production-ready, ale minimálně pro inspiraci poslouží :)