CSP mon amour en public

Suite à une petite discussion avec Llu sur les entêtes de protection content-security-policy1, j’ai installé une extension2 qui permet de générer à la volée, en cours de parcours, l’entête correspondant à un site donné, ce que j’ai activé pour ce blog. L’extension me propose ceci3 :

content-security-policy: default-src 'self'; script-src 'self' https://platform.twitter.com/widgets.js; style-src 'unsafe-inline' 'self'; object-src 'none'; base-uri 'self'; connect-src 'self'; font-src 'self'; frame-src 'self' https://platform.twitter.com https://www.openstreetmap.org; img-src 'self' data: https://syndication.twitter.com; manifest-src 'self'; media-src 'self'; worker-src 'self';

Je l’ai mise en place sur ce blog et on verra sur la durée si c’est suffisant où s’il y a des choses qui sont bloquées à partir de maintenant.

Je suppose que je dois avoir quelques URLs externes dans mes billets (ou commentaires), en particulier pour des médias (Youtube et consort) mais j’ai un peu la flemme de parcourir les 8426 billets publiés depuis le premier jour !

Alors si jamais vous observiez quelque chose d’inhabituel, prévenez-moi avec un commentaire ici, ou un mail, ou un ce que vous voudrez pour me bipper, merci, bisous :-)


En pratique c’est mis en place pour le thème avec ce code, dans le fichier _public.php à la racine du thème :

<?php
/**
 * @brief Berlin, a theme for Dotclear 2
 *
 * @package Dotclear
 * @subpackage Themes
 *
 * @copyright Olivier Meunier & Association Dotclear
 * @copyright GPL-2.0-only
 */
namespace themes\berlin_ot;

if (!defined('DC_RC_PATH')) {
    return;
}

$core->addBehavior('urlHandlerServeDocumentHeaders', [__NAMESPACE__ . '\behaviorBerlinTheme', 'urlHandlerServeDocumentHeaders']);

class behaviorBerlinTheme
{
    public static function urlHandlerServeDocumentHeaders($headers)
    {
        $csp = "Content-Security-Policy: default-src 'self'; script-src 'self' https://platform.twitter.com/widgets.js; style-src 'unsafe-inline' 'self'; object-src 'none'; base-uri 'self'; connect-src 'self'; font-src 'self'; frame-src 'self' https://platform.twitter.com https://www.openstreetmap.org; img-src 'self' data: https://syndication.twitter.com; manifest-src 'self'; media-src 'self'; worker-src 'self';";
        $headers->append($csp);
    }
}

Première modification, un ajout de 'unsafe-inline' pour l’attribut style-src, parce que les images (ou médias) positionnés (centrés, à gauche, à droite) le sont avec des styles en ligne.


  1. C’est en place depuis pas mal de temps côté administration du blog mais pas encore côté public. ↩︎

  2. Il s’agit de Content Security Policy (CSP) Generator (qui existe pour Chrome et Firefox). ↩︎

  3. Après avoir balayé plus de 200 pages d’ici même, soit parce que je m’y suis promené, soit via leur robot. ↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15437

Haut de page