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

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
radas
Člen | 220
+
0
-

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
+
+7
-

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 | 220
+
0
-

Díky moc, to je přesně ono, funguje.

radas
Člen | 220
+
0
-

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?

potapnik
Člen | 127
+
0
-

asi bych sel cestou vytvoreni hlavicky ve startup metode basepresenteru i s predanim toho nahodneho stringu do templaty.

mrtnzlml
Člen | 140
+
+3
-

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 | 1028
+
0
-

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