Direkt zum Hauptinhalt

Plugin local_csp

Das Plugin local_csp erlaubt das Prüfen und Erzwingen von HTTP-Headern nach der "Content Security Policy (CSP)"

Content Security Policy (CSP)

Das Plugin ermöglicht es, das Setzen von bestimmten Headern auf einer Moodle-Instanz zu beobachten und die Auswirkungen zu sammeln. Man kann die gewünschten Header anschließend auch setzen.

Das Plugin setzt zum Prüfen den Content-Security-Policy-Report-Only Header. Dieser Header hat u.a. als Parameter einen Endpoint, also eine URL: in der Datei /local/csp/collector.php werden die Daten per POST-Request entgegengenommen und in eine Tabelle geschrieben.    

Ein Scheduled Task (cleanup_csp_task) räumt die Tabelle nach der eingestellten Zeit wieder auf (Standard 26 Wochen: local_csp | cleanup_duration).

Zusätzlich zu den "Content Security Policy (CSP)"-Headern erlaubt das Plugin auch das Setzen von "Feature-Policy"-Headern. Hierbei handelt es sich um eine experimentelle Technologie (siehe "Permissions Policy"), mit der kontrolliert werden kann, welche Eigenschaften des Browsers eine Webseite nutzen darf. 

Anzeige von Warnmeldungen

Mit der Einstellung local_csp | notifications_enable_reported werden gelbe Kästchen auf jeder Webseite eingeblendet, die über die potentiellen Auswirkungen der aktuell gesetzten Header informieren.

Die Anzeige dieser Warnmeldungen ist an die Capability local/csp:seenotifications geknüpft, die standardmäßig für die Rollen teacher, editingteacher und manager gesetzt ist. 

localcsp_warnings.png

Report

Wie oben erwähnt sammelt das Plugin über den Endpoint des Headers alle Daten in einer Tabelle. Deren Inhalt kann man sich über den "CSP violation report" ansehen:

localcsp_violationreport.png

Einstellungen

Mit der Einstellung local_csp | csp_header_enable aktiviert man das Reporting. 

Folgende Direktiven schlägt das Plugin standardmäßig vor: 

  • default-src https:;
  • script-src 'self' 'unsafe-inline' 'unsafe-eval';
  • font-src https: data:;
  • style-src https: 'unsafe-inline';
  • img-src https: data:;


localcsp_settings.png

https://github.com/catalyst/moodle-local_csp 

https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP

https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy-Report-Only 

https://moodle.org/mod/forum/discuss.php?d=460784 - hier gibt es einen Vorschlag für ein Set an Headern


Autorin: Melanie Treitinger, Ruhr-Universität Bochum