Führt die Inhaltssicherheitsrichtlinie zu einer seltsamen Site-Darstellung?

Führt die Inhaltssicherheitsrichtlinie zu einer seltsamen Site-Darstellung?

Ich versuche herauszufinden, warum Content-Security-Policyeinige Elemente auf meiner Site etwas seltsam erscheinen, wenn der Header in meiner Nginx-Konfiguration aktiviert ist. Alles wird ordnungsgemäß geladen (Status 200), aber einige Bilder sind möglicherweise etwas kleiner oder die HTML-Wiedergabe im Browser ist etwas daneben. Es ist bizarr; ich kann es nicht wirklich erklären. Was ist die ordnungsgemäße Verwendung von Content-Security-Policy? Und warum kann es Websites beschädigen, deren Inhalt zu 100 % (kein CDN) aus dem Stammverzeichnis oder aus /uploads stammt?

user www-data;
worker_processes  auto;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    charset utf-8;
    server_tokens  off;

    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Frame-Options DENY;
    add_header Referrer-Policy "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Pragma public;
    add_header Cache-Control "public";
    add_header Content-Security-Policy "default-src 'self';";

    include /etc/nginx/conf.d/*.conf;

    gzip on;
    gzip_comp_level 2;
    gzip_min_length 1000;

    server {
    listen 127.0.0.1:80;
    server_name website.com;
    root /var/www/website/;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
    }

    location ~* .(png|ico|gif|jpg|jpeg|css|html|txt|php)$ {
        expires 2d;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    if ($request_method !~ ^(GET|POST)$) {
         return 444;
    }
  }
}

Antwort1

Ohne den Inhalt Ihrer Site zu kennen, ist es schwer zu sagen, warum CSP offensichtliche Auswirkungen darauf hat. Vielleicht verwenden Sie ein Build-Tool, das die Bilddateien Ihrer Site ändert, oder vielleicht ein Framework, das das Erscheinungsbild Ihrer Site auf subtile Weise verändert.

Um sicherzugehen, ob die Content Security Policy schuld ist, können Sie die Meldung von Verstößen aktivieren, indem Sie Folgendes angeben:

Content-Security-Policy: ...; report-uri https://endpoint.com; report-to groupname

Dies wird ausführlicher erörtert inMDN-Webdokumente. Wie im Artikel erwähnt, achten Sie darauf, beides einzuschließenBericht-URIUndBericht anaus Kompatibilitätsgründen. Sie können auch Nur Inhaltssicherheitsrichtlinienberichtwas möglicherweise einfacher zu implementieren und zu interpretieren ist. SieheHier.

Wenn Sie Chrome verwenden, können Sie in Ihrer Dev-Tools-Konsole nach Fehlern im Zusammenhang mit CSP suchen, da Chrome diesbezüglich über eine recht großzügige Fehlerberichterstattung verfügt. Dies ist möglich, ohne die oben genannten Änderungen vorzunehmen.

verwandte Informationen