Atténuer les attaques XSS avec la Content Security Policy

As promised, this feature was just enabled by default: CSP Frame Ancestors enabled by default

10 « J'aime »

Bonjour,
Je suis actuellement en train de configurer Google AdSense sur mon site Web et il semble qu’il me manque le paramètre « Activer la collecte de rapports de violation CSP sur /csp_reports ». J’héberge actuellement Discourse moi-même dans la version 2.9.0.beta6

ci-dessus, dans la citation, une capture d’écran du paramètre qui me manque


ci-dessus, ma page de paramètres CSP avec le paramètre « Activer la collecte de rapports de violation CSP sur /csp_reports » manquant.

Toute aide est appréciée ! Et dites-moi si j’ai correctement configuré les paramètres pour AdSense, je ne l’ai jamais utilisé auparavant :eyes: !

3 « J'aime »

Désolé, mes réponses précédentes ici sont obsolètes car il y a environ un mois, nous avons fait de content_security_policy_collect_reports un paramètre caché. Vous pouvez toujours l’activer, mais vous devez le faire via la console Rails, comme suit :

./launcher enter app
...
rails c 
...
SiteSetting.content_security_policy_collect_reports = true

Notez que c’est très bruyant, je vous recommande fortement de ne pas suivre cette voie du tout et d’activer simplement CSP et de naviguer sur le site avec la console du navigateur ouverte en utilisant plusieurs navigateurs (Chrome, Firefox, Safari). Vous y trouverez la plupart des problèmes. Et avec la configuration que vous avez, vous autorisez pratiquement tout ce que CSP protège de toute façon, vous n’aurez donc pas besoin de rapports.

6 « J'aime »

Il me manque peut-être quelque chose, mais je ne vois pas ces paramètres dans l’interface utilisateur des paramètres.

  • content_security_policy
  • content_security_policy_report_only
  • content_security_policy_collect_reports (je vois qu’il est maintenant masqué)
  • content_security_policy_script_src

Ces options sont-elles disponibles pour les instances hébergées ? Je n’ai vu aucune mention d’une telle limitation dans le message original ou les commentaires.

Edit : J’ai également tenté de définir la politique de sécurité via un thème.

Cela ne semble pas fonctionner comme indiqué dans le message original.

Je suppose que le plan hébergé sur lequel je me trouve ne le permet pas, même lorsque cela est fait via un thème ou un composant de thème ?

Ou peut-être que je fais quelque chose de complètement faux.

1 « J'aime »

Actuellement, Discourse expédie une politique CSP de niveau 2 avec les directives suivantes par défaut :

  • base-uri restreint les URL pour l’élément <base>

Existe-t-il une option pour remplacer la valeur par défaut de l’en-tête base-uri ?

1 « J'aime »

Où les éléments <base> sont-ils réellement utilisés dans le discours ?

Est-ce que cela casserait les notifications push de Discourse ?

Possible. Il faudrait peut-être un cadre plus approprié.

1 « J'aime »

Un message a été divisé en un nouveau sujet : Quelle est la méthode suggérée pour utiliser des images sécurisées ?

Salut,\n\nPuis-je savoir comment contourner le problème ci-dessous ? J’ai ajouté le script invoquant une nouvelle expression Function() à content_security_policy_script_src, mais ma console de navigateur se plaint toujours de l’erreur ci-dessous. Où puis-je exclure unsafe-eval ? Merci !\n\nUncaught EvalError : Refusé d'évaluer une chaîne en tant que JavaScript car 'unsafe-eval' n'est pas une source de script autorisée dans la directive de politique de sécurité du contenu suivante :\n\n

1 « J'aime »

Mes excuses. Veuillez ignorer mon précédent message si mes remarques ci-dessous sont correctes. Sachez simplement, grâce aux messages ci-dessus, que je peux définir « unsafe-eval » directement sur content_security_policy_script_src, et qu’aucune erreur JS n’est signalée dans la console.

1 « J'aime »

Peut-être jetez un œil au paramètre du site content security policy script src ?

1 « J'aime »

Oui. Comme indiqué dans les réponses précédentes, « unsafe-eval » peut être ajouté directement à content_security_policy_script_src. Je pensais que seuls les URL de base ou les URL complètes étaient autorisés à être ajoutés.

1 « J'aime »