Přidání vlastních HTTP hlaviček pro Content Security Policy
- radas
- Člen | 224
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 | 224
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 | 1029
Poohlédnul bych se u @spaze (csp-config + nonce-generator). Zjevně to zatím není production-ready, ale minimálně pro inspiraci poslouží :)