Demande #3134
ferméForcer la bannière par text replace nginx
0%
Description
Il est possible d'injecter une bannière chapril en réalisant un text replace sur la réponse reçue par bastion avec ce genre de configuration nginx dans un location / :
sub_filter '</body>' '<h1>Miaou !</h1></body>'; sub_filter_once on;
Cependant, cela n'est pas exécuté lorsque le contenu renvoyé semble zipé par le serveur http distant, il est possible de contorner ce problème via deux solutions :
1/ désactiver le module deflate sur le serveur http
2/ forcer un paramètre proxy_set_header Accept-Encoding "";
Cependant, cette seconde solution crée des problèmes sur un service comme date.chapril.org : tout les liens sont cassés et apparaissent comme "http://lamp…"
Mis à jour par Christian P. Momon il y a plus de 6 ans
Lors que je me connecte à listes.chapril.org :
- je tombe sur la page https://sympa.cluster.chapril.org/sympa/lists :-/
- y a un miaou en bas à gauche.
Mis à jour par Quentin Gibeaux il y a plus de 6 ans
Mis à jour par Christian P. Momon il y a plus de 6 ans
Je confirme la résolution du problème suite au Nginx reload \o/
Mis à jour par Christian P. Momon il y a plus de 6 ans
Actuellement, le code de la bannière est inclus depuis un fichier. J'approuve (centralisation…).
Ce fichier a pour nom « banniere-chapril ». Proposition d'appliquer un nommage uniquement en anglais par souci d’homogénéité et de cohérence. Suggestion de renommer en « chapril-banner ».
Mis à jour par Quentin Gibeaux il y a plus de 6 ans
- Version cible mis à Mise en production Chapril
Mis à jour par Christian P. Momon il y a plus de 6 ans
À propos du non chargement du CSS dans pouet.chapril.org, en regardant les logs réseaux (inspecteur Firefox) :
21:34:34,895 Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à https://www.chapril.org/Banner/chapril-banner.css (« style-src https://paste.chapril.org »). 1 (source inconnue)
Du coup, recherche web : https://www.bart-konieczny.com/fr/blog/securite-des-applications-web/explication-content-security-policy
Et ça se confirme :
cpm@ocmstar (21:53:28) ~ 21 > curl -v https://pouet.chapril.org/about 2>&1 |grep -i security
< Content-Security-Policy: default-src 'none'; font-src 'self'; media-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; img-src 'self' data:; connect-src 'self' wss://pouet.chapril.org; frame-ancestors 'none';
Hypothèses :
1) désactiver le CSP : oui, mais où ?
2) ajouter des location dans la conf nginx pour faire croire que les ressources sont locales.
Mis à jour par Christian P. Momon il y a plus de 6 ans
Dans /etc/nginx/sites-enabled/pouet.chapril.org :
location / {
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Content-Security-Policy "default-src 'none'; font-src 'self'; media-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; img-src 'self' data:; connect-src 'self' wss://pouet.chapril.org; frame-ancestors 'none';";
try_files $uri @proxy_static @proxy;
}
Mis à jour par Christian P. Momon il y a plus de 6 ans
J'ai appliqué la solution n°2 (mettre les ressources en relatif) et ça semble bien fonctionner.
L'inconvénient est qu'il faut deux include par fichier de configuration (1 pour le location /Banner et un pour les filter), pas très joli.
Mis à jour par Christian P. Momon il y a environ 6 ans
- Statut changé de Nouveau à Résolu
Solution technique validée.
Mis à jour par Christian P. Momon il y a presque 5 ans
- Projet changé de Chapril à banner.chapril.org
- Assigné à mis à Christian P. Momon