aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/http/headers/content-security-policy/report-uri/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/http/headers/content-security-policy/report-uri/index.html')
-rw-r--r--files/fr/web/http/headers/content-security-policy/report-uri/index.html133
1 files changed, 133 insertions, 0 deletions
diff --git a/files/fr/web/http/headers/content-security-policy/report-uri/index.html b/files/fr/web/http/headers/content-security-policy/report-uri/index.html
new file mode 100644
index 0000000000..11fcad82f9
--- /dev/null
+++ b/files/fr/web/http/headers/content-security-policy/report-uri/index.html
@@ -0,0 +1,133 @@
+---
+title: 'CSP: report-uri'
+slug: Web/HTTP/Headers/Content-Security-Policy/report-uri
+tags:
+ - CSP
+ - Content-Security-Policy
+ - Directive
+ - HTTP
+ - Reference
+ - Security
+ - Sécurité
+translation_of: Web/HTTP/Headers/Content-Security-Policy/report-uri
+---
+<div>{{HTTPSidebar}}{{deprecated_header}}</div>
+
+<p>La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) <code><strong>report-uri</strong></code> demande à l'agent utilisateur de rapporter les violations de règles CSP. Ces rapports de violation sont constituées d'un document JSON envoyé via une requête HTTP POST à l'URI fournie.</p>
+
+<div class="warning">
+<p>Bien que la directive {{CSP("report-to")}} est prévue remplacer la directive <code><strong>report-uri</strong></code> maintenant dépréciée, {{CSP("report-to")}} n'est pas encore supportée par la plupart des navigateurs modernes. Par rétrocompatibilité avec les navigateurs courants et tout en prévoyant une compatibilité future quand les navigateurs supporteront {{CSP("report-to")}}, vous pouvez spécifier les deux directives <code><strong>report-uri</strong></code> et {{CSP("report-to")}}:</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: ...; report-uri https://endpoint.com; report-to groupname</pre>
+
+<p>Dans les navigateurs qui supportent {{CSP("report-to")}}, la directive <code><strong>report-uri</strong></code> sera ignorée.</p>
+</div>
+
+<p>Cette directive n'a aucun effet en elle-même, mais prend tout son sens en étant combinée à d'autres directives.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Version de CSP</th>
+ <td>1</td>
+ </tr>
+ <tr>
+ <th scope="row">Type de directive</th>
+ <td>{{Glossary("Reporting directive")}}</td>
+ </tr>
+ <tr>
+ <th colspan="2" scope="row">Cette directive n'est pas supportée dans l'élément {{HTMLElement("meta")}}.</th>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: report-uri &lt;uri&gt;;
+Content-Security-Policy: report-uri &lt;uri&gt; &lt;uri&gt;;</pre>
+
+<dl>
+ <dt>&lt;uri&gt;</dt>
+ <dd>Une URI où envoyer la requête POST contenant le rapport de violation.</dd>
+</dl>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Voir {{HTTPHeader("Content-Security-Policy-Report-Only")}} pour plus d'informations et d'exemples.</p>
+
+<pre class="notranslate">Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/</pre>
+
+<p><code>/csp-violation-report-endpoint/</code> pourrait par exemple exécuter un script PHP similaire au suivant qui journaliserait le JSON détaillant la violation et, si elle est la première ajoutée au journal, enverrait un courril à l'administrateur :</p>
+
+<pre class="brush: php notranslate">&lt;?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 = 'admin@example.com';
+$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) &gt; $log_file_size_limit) {
+ exit(0);
+ }
+
+ file_put_contents($log_file, $json_data, FILE_APPEND | LOCK_EX);
+}
+
+</pre>
+
+<h2 id="Spécifications">Spécifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Spécification</th>
+ <th scope="col">Statut</th>
+ <th scope="col">Commentaire</th>
+ </tr>
+ <tr>
+ <td>{{specName("CSP 3.0", "#directive-report-uri", "report-uri")}}</td>
+ <td>{{Spec2('CSP 3.0')}}</td>
+ <td>Inchangé.</td>
+ </tr>
+ <tr>
+ <td>{{specName("CSP 1.1", "#directive-report-uri", "report-uri")}}</td>
+ <td>{{Spec2('CSP 1.1')}}</td>
+ <td>Définition initiale.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.csp.Content-Security-Policy.report-uri")}}</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Security-Policy")}}</li>
+ <li>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</li>
+</ul>