HTTP - CSP: report-uri

CSP: Bericht-URI




http

Veraltet
Diese Funktion wurde aus den Webstandards entfernt. Obwohl einige Browser es immer noch unterstützen, wird es gerade gelöscht. Vermeiden Sie die Verwendung und aktualisieren Sie den vorhandenen Code nach Möglichkeit. In der Kompatibilitätstabelle unten auf dieser Seite finden Sie Ihre Entscheidung. Beachten Sie, dass diese Funktion zu jeder Zeit nicht mehr funktioniert.

Die veraltete Richtlinie HTTP- Content-Security-Policy (CSP) report-uri weist den Benutzeragenten an, Versuche zu melden, die Inhaltssicherheitsrichtlinie zu verletzen. Diese Verstoßberichte bestehen aus JSON-Dokumenten, die über eine HTTP-POST-Anforderung an den angegebenen URI gesendet werden.

Obwohl die report-to Direktive die veraltete report-uri Direktive ersetzen soll, wird report-to in den meisten Browsern noch nicht unterstützt. Aus Gründen der Kompatibilität mit aktuellen Browsern können Sie aber auch die Abwärtskompatibilität report-to Unterstützung von report-to Browser angeben, indem Sie sowohl report-uri als auch report-to angeben:

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

In Browsern, die report-to , wird die report-uri Direktive ignoriert.

Die Richtlinie hat an sich keine Wirkung, sondern gewinnt nur in Kombination mit anderen Richtlinien an Bedeutung.

CSP-Version 1
Richtlinientyp Berichtsrichtlinie
Diese Anweisung wird im <meta> -Element nicht unterstützt.

Syntax

Content-Security-Policy: report-uri <uri>;
Content-Security-Policy: report-uri <uri> <uri>;
<uri>
Ein URI, an den der Bericht gesendet werden soll.

Beispiele

Weitere Informationen und Beispiele finden Sie unter Content-Security-Policy-Report-Only .

Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/

/csp-violation-report-endpoint/ könnte zum Beispiel eine PHP-Datei wie die folgende ausführen, die die JSON-Datei protokolliert, die die Verletzung beschreibt, und, wenn die Verletzung der ersten in der Protokolldatei ist, eine E-Mail an einen Administrator sendet:

<?php

// Start configure
$log_file = dirname(__FILE__) . '/csp-violations.log';
$log_file_size_limit = 1000000; // bytes - once exceeded no further entries are added
$email_address = '[email protected]';
$email_subject = 'Content-Security-Policy violation';
// End configuration

$current_domain = preg_replace('/www\./i', '', $_SERVER['SERVER_NAME']);
$email_subject = $email_subject . ' on ' . $current_domain;

http_response_code(204); // HTTP 204 No Content

$json_data = file_get_contents('php://input');

// We pretty print the JSON before adding it to the log file
if ($json_data = json_decode($json_data)) {
  $json_data = json_encode($json_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

  if (!file_exists($log_file)) {
    // Send an email
    $message = "The following Content-Security-Policy violation occurred on " .
      $current_domain . ":\n\n" .
      $json_data .
      "\n\nFurther CPS violations will be logged to the following log file, but no further email notifications will be sent until this log file is deleted:\n\n" .
      $log_file;
    mail($email_address, $email_subject, $message,
         'Content-Type: text/plain;charset=utf-8');
  } else if (filesize($log_file) > $log_file_size_limit) {
    exit(0);
  }

  file_put_contents($log_file, $json_data, FILE_APPEND | LOCK_EX);
}

?>

Spezifikationen

Browser-Kompatibilität

Feature Chrom Kante Feuerfuchs Internet Explorer Oper Safari
Grundlegende Unterstützung 25 14 23 Nein 15 7
Feature Android-Webansicht Chrome für Android Edge-Handy Firefox für Android Opera Android iOS Safari Samsung Internet
Grundlegende Unterstützung Ja Ja ? 23 ? 7.1 Ja

Siehe auch