CSP compatible avec matomo ?

WRInaute accro
Bonjour

Actuellement, avec Matomo, d'après Firefox j'ai une flopée de sites devant être accédés pour des cookies ou storages, rendu impossible par ma CSP.

J'ai configuré ma CSP autant que possible, ma seule question est :

Strict-Transport-Security est-il incompatible avec Matomo ?

Merci beaucoup.


Code:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
 
WRInaute accro
A propos des CSP et nonce :

Le nonce doit changer à chaque chargement de page.

Sous Nginx, je pourrais utiliser le $request_id comme nonce.

Mais cette variable n'est pas secure cryptographiquement.

Comment rendre cette variable "secure" dans le CSP ?

Merci beaucoup.
 
WRInaute impliqué
J'ai configuré ma CSP autant que possible, ma seule question est :
Strict-Transport-Security est-il incompatible avec Matomo ?
Code:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Ton code n'est pas une directive CSP mais concerne HSTS.

Pour générer un nonce en PHP :
Code:
$nonce = base64_encode(random_bytes(20));

Si des ressources sont bloquées alors que tu les veux vraiment sur ta page, c'est que ta CSP est trop restrictive, ou que ce que tu intègres fait des choses que tu n'as pas prévues (comme charger d'autres scripts, par exemple).
 
WRInaute accro
Bonjour colonies

Voilà le header CSP que j'essaye de déclencher, sans succès :

Code:
header(Content-Security-Policy, "default-src 'self'; connect-src https://analytics.pronostics-courses.fr; img-src 'self' https://analytics.pronostics-courses.fr; script-src 'nonce-zyFkZ6sbrjfjqNxsYKQNcpD1h28=' 'strict-dynamic' http: https:; style-src 'nonce-zyFkZ6sbrjfjqNxsYKQNcpD1h28='; link-src 'nonce-zyFkZ6sbrjfjqNxsYKQNcpD1h28='; frame-ancestors 'self'; frame-src 'self'; object-src 'none'; base-uri 'none'; report-uri https://www.pronostics-courses.fr/csp_report/report.php;")

Quand je fais : "curl -I http://localhost" :

Code:
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Wed, 24 Aug 2022 16:59:40 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/8.1.9
Set-Cookie: SES=0c6setrvikqj5te7ihs29go3hd; path=/; HttpOnly; SameSite=Lax
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Security-Policy:
X-WebKit-CSP:
X-Content-Security-Policy:
x-dns-prefetch-control: on

Le header est probablement trop complexe.

Merci beaucoup de ton aide.
 
WRInaute accro
Voilà maintenant :

Code:
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Wed, 24 Aug 2022 18:51:09 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/8.1.9
Set-Cookie: SES=mh9q5j96ql92blrq460ordebmr; path=/; HttpOnly; SameSite=Lax
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Security-Policy: "default-src 'self'; connect-src https://analytics.pronostics-courses.fr; img-src 'self' https://analytics.pronostics-courses.fr; script-src 'unsafe-inline' https: 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw=' 'strict-dynamic'; style-src 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw='; link-src 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw='; frame-ancestors 'self'; frame-src 'self'; object-src 'none'; base-uri 'none'; report-uri https://www.pronostics-courses.fr/csp_report/report.php;"
X-WebKit-CSP: "default-src 'self'; connect-src https://analytics.pronostics-courses.fr; img-src 'self' https://analytics.pronostics-courses.fr; script-src 'unsafe-inline' https: 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw=' 'strict-dynamic'; style-src 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw='; link-src 'nonce-EtL7FugDVxai4R7/l23MLVbb/Yw='; frame-ancestors 'self'; frame-src 'self'; object-src 'none'; base-uri 'none'; report-uri https://www.pronostics-courses.fr/csp_report/report.php;"


Je crois qu'il ne faut pas indiquer d'urls pour les script-src.

Mais le connect-src sera-t-il suffisant pour les scripts descendants ?

Faut-t-il mettre un nonce pour les style-src et link-src ?

Merci beaucoup.
 
Dernière édition:
WRInaute impliqué
Les URL pour script-src fonctionnent, mais bon...

Tu devrais supprimer X-WebKit-CSP, par contre. C'est un vieux truc qui n'a servi que très peu de temps, et qui peut entrainer des problèmes sur certains navigateurs (probablement pas les plus récents mais bref : supporter de vieux navigateurs plus utilisés pour en perturber d'autres du même genre, ça ne sert à rien).

Note: It is known that having both Content-Security-Policy and X-Content-Security-Policy or X-Webkit-CSP causes unexpected behaviours on certain versions of browsers. Please avoid using deprecated X-* headers.
Source : https://content-security-policy.com
 
WRInaute accro
Bonjour colonies

J'ai un bug dans le header :

Code:
* http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [content-security-policy ], value: ["default-src 'self'; connect-src https://analytics.pronostics-courses.fr; img-src 'self' https://analytics.pronostics-courses.fr; script-src 'unsafe-inline' https: 'nonce-6a86cef6bba8f1ffef61d3a7aba93b77' 'strict-dynamic'; frame-ancestors 'self'; frame-src 'self'; object-src 'none'; base-uri 'none'; report-uri https://www.pronostics-courses.fr/csp_report/report.php;"]

Merci beaucoup de ton aide.

Amicalement.
 
WRInaute accro
Problème résolu.

Cependant, comment faites-vous avec les connect-src ?

Surtout les connect-src des scripts descendants ?

Faut-il tous les indiquer ?

Merci beaucoup.
 
WRInaute accro
Bonjour colonies

Cà marche.

J'ai mis le nonce dans le sript -src et toutes les urls dans les autres -src.

Faudrait que j'y ajoute un favicon.ico. ;)

Maintenant, développement de ma PWA. ;)

Merci beaucoup.
 
Discussions similaires
Haut