From 3518481e9190f19bbf81741704f45cb3c1761758 Mon Sep 17 00:00:00 2001 From: SphinxKnight Date: Fri, 17 Sep 2021 20:08:55 +0200 Subject: Prepare HTTP section for Markdown conversion (#2453) * Remove summary classes * Remove hidden blocks * Remove id when not in headings * Remove notranslate * remove unecessary ltr dir * Remove spans from automatic translation tool copy/paste * Remove unhandled pe brush for plain text * make consistent notes * make consistent warning + rm rfc class * fix one-offs and images + spans * fix dls and subsequent oneoff errors * fix sups --- .../content-security-policy/base-uri/index.html | 10 +++--- .../block-all-mixed-content/index.html | 12 +++---- .../content-security-policy/child-src/index.html | 6 ++-- .../content-security-policy/connect-src/index.html | 8 ++--- .../content-security-policy/default-src/index.html | 25 +++++--------- .../content-security-policy/font-src/index.html | 6 ++-- .../content-security-policy/form-action/index.html | 12 +++---- .../frame-ancestors/index.html | 10 +++--- .../content-security-policy/frame-src/index.html | 6 ++-- .../content-security-policy/img-src/index.html | 8 ++--- .../headers/content-security-policy/index.html | 22 +++++++------ .../manifest-src/index.html | 6 ++-- .../content-security-policy/media-src/index.html | 6 ++-- .../content-security-policy/navigate-to/index.html | 8 ++--- .../content-security-policy/object-src/index.html | 10 +++--- .../plugin-types/index.html | 10 +++--- .../prefetch-src/index.html | 6 ++-- .../content-security-policy/referrer/index.html | 6 ++-- .../content-security-policy/report-to/index.html | 38 ++++++++++------------ .../content-security-policy/report-uri/index.html | 10 +++--- .../require-sri-for/index.html | 8 ++--- .../require-trusted-types-for/index.html | 6 ++-- .../content-security-policy/sandbox/index.html | 4 +-- .../script-src-attr/index.html | 8 ++--- .../script-src-elem/index.html | 8 ++--- .../content-security-policy/script-src/index.html | 28 ++++++++-------- .../style-src-attr/index.html | 10 ++---- .../style-src-elem/index.html | 10 ++---- .../content-security-policy/style-src/index.html | 26 +++++++-------- .../trusted-types/index.html | 10 +++--- .../upgrade-insecure-requests/index.html | 18 +++++----- .../content-security-policy/worker-src/index.html | 6 ++-- 32 files changed, 171 insertions(+), 196 deletions(-) (limited to 'files/fr/web/http/headers/content-security-policy') diff --git a/files/fr/web/http/headers/content-security-policy/base-uri/index.html b/files/fr/web/http/headers/content-security-policy/base-uri/index.html index 018167226e..714cfb2f7b 100644 --- a/files/fr/web/http/headers/content-security-policy/base-uri/index.html +++ b/files/fr/web/http/headers/content-security-policy/base-uri/index.html @@ -37,7 +37,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/base-uri

Une ou plusieurs sources peuvent être autorisées pour cette directive :

-
Content-Security-Policy: base-uri <source>;
+
Content-Security-Policy: base-uri <source>;
 Content-Security-Policy: base-uri <source> <source>;
 
@@ -51,23 +51,23 @@ Content-Security-Policy: base-uri <source> <source>;

Configuration par balise <meta>

-
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">
+
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">

Configuration par Apache

-
<IfModule mod_headers.c>
+
<IfModule mod_headers.c>
 Header set Content-Security-Policy "base-uri 'self'";
 </IfModule>

Configuration par Nginx

-
add_header Content-Security-Policy "base-uri 'self';"
+
add_header Content-Security-Policy "base-uri 'self';"

Cas de violation

À partir du moment où votre domaine n'est pas example.com, un élément {{HTMLElement("base")}} avec son attribut href défini à https://example.com résultera en une violation de CSP.

-
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">
+
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">
 <base href="https://example.com/">
 
 // Error: Refused to set the document's base URI to 'https://example.com/'
diff --git a/files/fr/web/http/headers/content-security-policy/block-all-mixed-content/index.html b/files/fr/web/http/headers/content-security-policy/block-all-mixed-content/index.html
index 1d5670728a..92897ebaf9 100644
--- a/files/fr/web/http/headers/content-security-policy/block-all-mixed-content/index.html
+++ b/files/fr/web/http/headers/content-security-policy/block-all-mixed-content/index.html
@@ -15,28 +15,28 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content
 ---
 
{{HTTPSidebar}}
-

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) block-all-mixed-content bloque le chargement de ressources via HTTP lorsque la page utilise HTTPS.

+

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) block-all-mixed-content bloque le chargement de ressources via HTTP lorsque la page utilise HTTPS.

Toutes les requêtes vers des contenus mixtes sont alors bloquées, y compris les ressources actives et passives. Cela s'applique aussi aux documents {{HTMLElement("iframe")}}, assurant que la page est complètement protégée contre les contenus mixtes.

-
-

Note : La directive {{CSP("upgrade-insecure-requests")}} est évaluée avant block-all-mixed-content. Si elle est définie, alors block-all-mixed-content n'est pas nécessaire, à moins que vous souhaitiez forcer HTTPS sur les anciens navigateurs qui ne le font pas après une redirection vers HTTP.

+
+

Note : La directive {{CSP("upgrade-insecure-requests")}} est évaluée avant block-all-mixed-content. Si elle est définie, alors block-all-mixed-content n'est pas nécessaire, à moins que vous souhaitiez forcer HTTPS sur les anciens navigateurs qui ne le font pas après une redirection vers HTTP.

Syntaxe

-
Content-Security-Policy: block-all-mixed-content;
+
Content-Security-Policy: block-all-mixed-content;

Exemples

-
Content-Security-Policy: block-all-mixed-content;
+
Content-Security-Policy: block-all-mixed-content;
 
 <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
 

Pour interdire l'usage de HTTP de manière plus fine, vous pouvez aussi configurer individuellement chaque directive sur https:. Par exemple, pour interdire les images HTTP non sécurisées :

-
Content-Security-Policy: img-src https:
+
Content-Security-Policy: img-src https:

Spécifications

diff --git a/files/fr/web/http/headers/content-security-policy/child-src/index.html b/files/fr/web/http/headers/content-security-policy/child-src/index.html index 09f25eb420..8cf2d1ab7a 100644 --- a/files/fr/web/http/headers/content-security-policy/child-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/child-src/index.html @@ -39,7 +39,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/child-src

Une ou plusieurs sources peuvent être autorisées pour cette directive :

-
Content-Security-Policy: child-src <source>;
+
Content-Security-Policy: child-src <source>;
 Content-Security-Policy: child-src <source> <source>;
 
@@ -53,11 +53,11 @@ Content-Security-Policy: child-src <source> <source>;

Soit cet en-tête CSP :

-
Content-Security-Policy: child-src https://example.com/
+
Content-Security-Policy: child-src https://example.com/

Cet {{HTMLElement("iframe")}} et ce worker seront bloqués et ne se chargeront pas :

-
<iframe src="https://not-example.com"></iframe>
+
<iframe src="https://not-example.com"></iframe>
 
 <script>
   var blockedWorker = new Worker("data:application/javascript,...");
diff --git a/files/fr/web/http/headers/content-security-policy/connect-src/index.html b/files/fr/web/http/headers/content-security-policy/connect-src/index.html
index 9914f70cf4..845f46f7b0 100644
--- a/files/fr/web/http/headers/content-security-policy/connect-src/index.html
+++ b/files/fr/web/http/headers/content-security-policy/connect-src/index.html
@@ -27,7 +27,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/connect-src
 
 
 
-

Note: connect-src 'self' ne s'applique pas aux schémas de websocket pour tous les navigateurs. Pour plus d'informations, consulter : https://github.com/w3c/webappsec-csp/issues/7.

+

Note : connect-src 'self' ne s'applique pas aux schémas de websocket pour tous les navigateurs. Pour plus d'informations, consulter : https://github.com/w3c/webappsec-csp/issues/7.

@@ -51,7 +51,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/connect-src

Une ou plusieurs sources peuvent être autorisées pour cette directive :

-
Content-Security-Policy: connect-src <source>;
+
Content-Security-Policy: connect-src <source>;
 Content-Security-Policy: connect-src <source> <source>;
 
@@ -65,11 +65,11 @@ Content-Security-Policy: connect-src <source> <source>;

Soit cet en-tête CSP :

-
Content-Security-Policy: connect-src https://example.com/
+
Content-Security-Policy: connect-src https://example.com/

Les connexions suivantes seront bloquées et ne se chargeront pas :

-
<a ping="https://not-example.com">
+
<a ping="https://not-example.com">
 
 <script>
   var xhr = new XMLHttpRequest();
diff --git a/files/fr/web/http/headers/content-security-policy/default-src/index.html b/files/fr/web/http/headers/content-security-policy/default-src/index.html
index 4111dc6de1..9f2d9d6cb8 100644
--- a/files/fr/web/http/headers/content-security-policy/default-src/index.html
+++ b/files/fr/web/http/headers/content-security-policy/default-src/index.html
@@ -16,7 +16,9 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/default-src
 ---
 
{{HTTPSidebar}}
-

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) default-src sert de valeur par défaut pour les autres directives CSP {{Glossary("fetch directive", "fetch directives")}}. Pour chacune des directives suivantes, l'agent utilisateur consultera la directive default-src et utilisera sa valeur pour la directive demandée si celle-ci est absente :

+

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) default-src sert de valeur par défaut pour les autres directives CSP {{Glossary("fetch directive", "fetch directives")}}.

+ +

Pour chacune des directives suivantes, l'agent utilisateur consultera la directive default-src et utilisera sa valeur pour la directive demandée si celle-ci est absente :

  • {{CSP("child-src")}}
  • @@ -54,13 +56,12 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/default-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: default-src <source>;
    +
    Content-Security-Policy: default-src <source>;
     Content-Security-Policy: default-src <source> <source>;
     

    Sources

    -

    La <source> peut être une des suivantes :

    @@ -87,7 +88,7 @@ Content-Security-Policy: default-src <source> <source>;
    Cette valeur fait référence au domaine dont est originaire le document protégé, y compris le protocole et le numéro de port. Vous devez mettre cette valeur entre guillemets. Certains navigateurs excluent spécifiquement les valeurs blob et filesystem des directives de source. Les sites nécessitant une permission pour ces types de contenu peuvent les spécifier en utilisant l'attribut Data.
    'unsafe-eval'
    Permet l'usage de la fonction eval() et de méthodes similaires pour créer du code à partir de chaines de caractères. Vous devez mettre cette valeur entre guillemets.
    -
    'unsafe-hashes'
    +
    'unsafe-hashes'
    Permet l'usage de certains écouteurs d'évènements par attributs. Si vous n'avez besoin que d'écouteurs d'évènements par attributs et non d'éléments {{HTMLElement("script")}} embarqués ou d'URL javascript:, cette valeur est plus sécurisée que unsafe-inline.
    'unsafe-inline'
    Permet l'usage de ressources embarquées, tels que des éléments {{HTMLElement("script")}} (sans src), d'URL javascript:, de gestionnaire d'évènement par attributs (on<eventName>), et d'éléments {{HTMLElement("style")}}. Vous devez mettre cette valeur entre guillemets.
    @@ -97,22 +98,12 @@ Content-Security-Policy: default-src <source> <source>;
    Une liste de permissions pour des scripts embarqués spécifiques en utilisant un nonce (number used once, nombre à usage unique) cryptographique. Le serveur doit générer un nonce à chaque fois qu'il transmet une réponse. Il est extrèmement important de fournir des nonces non prédictibles, puisque le contraire permettrait aisément de contourner la stratégie de sécurité. Voir inline script non fiables pour avoir un exemple. Spécifier un nonce implique que les navigateurs modernes ignoreront la valeur 'unsafe-inline', qui peut toutefois être laissée pour les anciens navigateurs ne supportant pas les nonces.
    '<hash-algorithm>-<base64-value>'
    Un hash sha256, sha384 ou sha512 d'un <script> ou d'un <style>. Cette source est composée de deux parties séparées par un tiret : le nom de l'algorithme de chiffrage utilisé pour générer le hash à gauche et le hash encodé en base 64 à droite. Lors de la génération du hash, il ne faut pas inclure les balises <script> or <style> et tenir compte de la casse et des caractères blancs (espaces, retours à la ligne, etc.). Voir inline script non fiables pour en avoir un exemple. En CSP 2.0, cette valeur ne s'applique qu'aux scripts embarqués. CSP 3.0 le permet aussi dans le cas de scripts externes.
    -
    -
    - -
    -
    'strict-dynamic'
    La valeur strict-dynamic spécifie que la confiance explicitement donnée à un script de la page, par le biais d'un nonce ou d'un hash, doit être propagée à tous les scripts chargés par celui-ci. En conséquence, toute les valeurs telles que 'self' ou 'unsafe-inline' et listes de permissions sont ignorées. Voir script-src pour en avoir un exemple.
    -
    -
    - -
    -
    'report-sample'
    Requiert qu'un échantillon du code violant la directive soit inclus dans le rapport envoyé.
    -
    +

    Exemples

    @@ -120,11 +111,11 @@ Content-Security-Policy: default-src <source> <source>;

    S'il y a d'autres directives spécifiées, default-src ne les affecte pas. Soit l'en-tête suivant :

    -
    Content-Security-Policy: default-src 'self'; script-src https://example.com
    +
    Content-Security-Policy: default-src 'self'; script-src https://example.com

    Est identique à :

    -
    Content-Security-Policy: connect-src 'self';
    +
    Content-Security-Policy: connect-src 'self';
                              font-src 'self';
                              frame-src 'self';
                              img-src 'self';
    diff --git a/files/fr/web/http/headers/content-security-policy/font-src/index.html b/files/fr/web/http/headers/content-security-policy/font-src/index.html
    index 9e50fb7307..d5f2317624 100644
    --- a/files/fr/web/http/headers/content-security-policy/font-src/index.html
    +++ b/files/fr/web/http/headers/content-security-policy/font-src/index.html
    @@ -38,7 +38,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/font-src
     
     

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: font-src <source>;
    +
    Content-Security-Policy: font-src <source>;
     Content-Security-Policy: font-src <source> <source>;
     
    @@ -52,11 +52,11 @@ Content-Security-Policy: font-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: font-src https://example.com/
    +
    Content-Security-Policy: font-src https://example.com/

    Cette définition de police sera bloquée et ne se chargera pas :

    -
    <style>
    +
    <style>
       @font-face {
         font-family: "MyFont";
         src: url("https://not-example.com/font");
    diff --git a/files/fr/web/http/headers/content-security-policy/form-action/index.html b/files/fr/web/http/headers/content-security-policy/form-action/index.html
    index cd09bd3cbc..fee4d1839f 100644
    --- a/files/fr/web/http/headers/content-security-policy/form-action/index.html
    +++ b/files/fr/web/http/headers/content-security-policy/form-action/index.html
    @@ -17,7 +17,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/form-action
     

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) form-action restreint les URL pouvant être utilisées comme cibles de soumissions de formulaires depuis un contexte donné.

    -

    La question de savoir si form-action doit bloquer les redirections après une soumission de formulaire est encore débattue et les implantations des navigateurs sur cet aspect sont incohérentes (par exemple Firefox 57 ne les bloque pas, contrairement à Chrome 63).

    +

    Attention : La question de savoir si form-action doit bloquer les redirections après une soumission de formulaire est encore débattue et les implantations des navigateurs sur cet aspect sont incohérentes (par exemple Firefox 57 ne les bloque pas, contrairement à Chrome 63).

@@ -41,7 +41,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/form-action

Une ou plusieurs sources peuvent être utilisées pour cette directive :

-
Content-Security-Policy: form-action <source>;
+
Content-Security-Policy: form-action <source>;
 Content-Security-Policy: form-action <source> <source>;
 
@@ -53,23 +53,23 @@ Content-Security-Policy: form-action <source> <source>;

Configuration par balise <meta>

-
<meta http-equiv="Content-Security-Policy" content="form-action 'none'">
+
<meta http-equiv="Content-Security-Policy" content="form-action 'none'">

Configuration par Apache

-
<IfModule mod_headers.c>
+
<IfModule mod_headers.c>
 Header set Content-Security-Policy "form-action 'none';"
 </IfModule>

Configuration par Nginx

-
add_header Content-Security-Policy "form-action 'none';"
+
add_header Content-Security-Policy "form-action 'none';"

Cas de violation

Utiliser un élément {{HTMLElement("form")}} avec un attribut action défini à un script embarqué JavaScript résultera en une violation de CSP :

-
<meta http-equiv="Content-Security-Policy" content="form-action 'none'">
+
<meta http-equiv="Content-Security-Policy" content="form-action 'none'">
 
 <form action="javascript:alert('Foo')" id="form1" method="post">
   <input type="text" name="fieldName" value="fieldValue">
diff --git a/files/fr/web/http/headers/content-security-policy/frame-ancestors/index.html b/files/fr/web/http/headers/content-security-policy/frame-ancestors/index.html
index c512933db4..756e247616 100644
--- a/files/fr/web/http/headers/content-security-policy/frame-ancestors/index.html
+++ b/files/fr/web/http/headers/content-security-policy/frame-ancestors/index.html
@@ -43,7 +43,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/frame-ancestors
 
 

Une ou plusieurs sources peuvent être autorisées pour cette directive :

-
Content-Security-Policy: frame-ancestors <source>;
+
Content-Security-Policy: frame-ancestors <source>;
 Content-Security-Policy: frame-ancestors <source> <source>;
 
@@ -52,7 +52,7 @@ Content-Security-Policy: frame-ancestors <source> <source>;

La <source> peut être une des suivantes :

-

The frame-ancestors directive’s syntax is similar to a source list of other directives (e.g. {{CSP("default-src")}}), but doesn't allow 'unsafe-eval' or 'unsafe-inline' for example. It will also not fall back to a default-src setting. Only the sources listed below are allowed:

+

Note : The frame-ancestors directive’s syntax is similar to a source list of other directives (e.g. {{CSP("default-src")}}), but doesn't allow 'unsafe-eval' or 'unsafe-inline' for example. It will also not fall back to a default-src setting. Only the sources listed below are allowed:

@@ -65,8 +65,8 @@ Content-Security-Policy: frame-ancestors <source> <source>;
  • https://store.example.com: correspondra à toutes les tentatives d'accès à store.example.com via le protocole https:.
  • -
    -

    Si aucun schéma d'URL n'est spécifié comme host-source et que l'{{HTMLElement("iframe")}} est chargée via une URL https:, la page chargeant l'iframe doit aussi être chargée en https:, selon la spécification du W3C sur les correspondances de valeurs de sources.

    +
    +

    Attention : Si aucun schéma d'URL n'est spécifié comme host-source et que l'{{HTMLElement("iframe")}} est chargée via une URL https:, la page chargeant l'iframe doit aussi être chargée en https:, selon la spécification du W3C sur les correspondances de valeurs de sources.

    <scheme-source>
    @@ -86,7 +86,7 @@ Content-Security-Policy: frame-ancestors <source> <source>;

    Exemples

    -
    Content-Security-Policy: frame-ancestors 'none';
    +
    Content-Security-Policy: frame-ancestors 'none';
     
     Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
    diff --git a/files/fr/web/http/headers/content-security-policy/frame-src/index.html b/files/fr/web/http/headers/content-security-policy/frame-src/index.html index 34aa799481..e5d7566d81 100644 --- a/files/fr/web/http/headers/content-security-policy/frame-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/frame-src/index.html @@ -39,7 +39,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/frame-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: frame-src <source>;
    +
    Content-Security-Policy: frame-src <source>;
     Content-Security-Policy: frame-src <source> <source>;
     
    @@ -53,11 +53,11 @@ Content-Security-Policy: frame-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: frame-src https://example.com/
    +
    Content-Security-Policy: frame-src https://example.com/

    Cet élément {{HTMLElement("iframe")}} est bloqué et ne se chargera pas :

    -
    <iframe src="https://not-example.com/"></iframe>
    +
    <iframe src="https://not-example.com/"></iframe>

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/img-src/index.html b/files/fr/web/http/headers/content-security-policy/img-src/index.html index d398bf7930..cbaf0a5798 100644 --- a/files/fr/web/http/headers/content-security-policy/img-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/img-src/index.html @@ -16,7 +16,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/img-src ---
    {{HTTPSidebar}}
    -

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} img-src sépcifie les sources valides d'images et de favicons.

    +

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} img-src sépcifie les sources valides d'images et de favicons.

    @@ -39,7 +39,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/img-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: img-src <source>;
    +
    Content-Security-Policy: img-src <source>;
     Content-Security-Policy: img-src <source> <source>;
     
    @@ -53,11 +53,11 @@ Content-Security-Policy: img-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: img-src https://example.com/
    +
    Content-Security-Policy: img-src https://example.com/

    Cet élément {{HTMLElement("img")}} est bloqué et ne se chargera pas :

    -
    <img src="https://not-example.com/foo.jpg" alt="example picture">
    +
    <img src="https://not-example.com/foo.jpg" alt="example picture">

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/index.html b/files/fr/web/http/headers/content-security-policy/index.html index 4ffcff7b78..2cd4912372 100644 --- a/files/fr/web/http/headers/content-security-policy/index.html +++ b/files/fr/web/http/headers/content-security-policy/index.html @@ -30,7 +30,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy

    Syntaxe

    -
    Content-Security-Policy: <policy-directive>; <policy-directive>
    +
    Content-Security-Policy: <policy-directive>; <policy-directive>
     

    Directives

    @@ -44,7 +44,9 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy
    Définit les sources valides pour les web workers et les éléments qui représentent des contextes de navigation imbriqués tels que {{HTMLElement("frame")}} et {{HTMLElement("iframe")}}.
    -
    Plutôt que la directive child-src, si vous souhaitez réguler les contextes de navigation imbriqués et les workers séparément, vous pouvez utiliser respectivement les directives {{CSP("frame-src")}} et {{CSP("worker-src")}}.
    +
    +

    Attention :Plutôt que la directive child-src, si vous souhaitez réguler les contextes de navigation imbriqués et les workers séparément, vous pouvez utiliser respectivement les directives {{CSP("frame-src")}} et {{CSP("worker-src")}}.

    +
    {{CSP("connect-src")}}
    @@ -65,8 +67,8 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy
    Définit les sources valides pour les ressources des éléments {{HTMLElement("object")}}, {{HTMLElement("embed")}} et {{HTMLElement("applet")}}.
    -
    -

    Les éléments contrôlés pa ar object-src sont considérés peut-être par coïcidence comme des éléments HTML du passé et ne recevront de nouvelles fonctionnalités normalisées (comme les attributs de sécurité sandbox et allow pour <iframe>). De ce fait, il est recommandé de restreindre cette directive, c'est-à-dire la définir explicitement à object-src 'none' dans la mesure du possible.

    +
    +

    Note : Les éléments contrôlés pa ar object-src sont considérés peut-être par coïcidence comme des éléments HTML du passé et ne recevront de nouvelles fonctionnalités normalisées (comme les attributs de sécurité sandbox et allow pour <iframe>). De ce fait, il est recommandé de restreindre cette directive, c'est-à-dire la définir explicitement à object-src 'none' dans la mesure du possible.

    @@ -124,9 +126,9 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy
    -

    Bien que la directive report-to est prévue remplacer la directive report-uri maintenant dépréciée, 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 report-to, vous pouvez spécifier les deux directives report-uri et report-to:

    +

    Attention : Bien que la directive report-to est prévue remplacer la directive report-uri maintenant dépréciée, 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 report-to, vous pouvez spécifier les deux directives report-uri et report-to:

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

    Dans les navigateurs qui supportent report-to, la directive report-uri sera ignorée.

    @@ -163,7 +165,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy

    L'en-tête Content-Security-Policy peut être utilisé plus d'une fois comme illustré ci-après. On notera la directive {{CSP("connect-src")}} utilisée ici. Bien que la deuxième règle autorise la connexion, la première contient connect-src 'none'. L'ajout de règles supplémentaires permet uniquement d'augmenter les protections. Les niveaux les plus stricts pour chaque règle sont alors utilisés. Dans l'exemple qui suit, cela signifie que la directive connect-src 'none' sera respectée.

    -
    Content-Security-Policy: default-src 'self' http://example.com;
    +
    Content-Security-Policy: default-src 'self' http://example.com;
                              connect-src 'none';
     Content-Security-Policy: connect-src http://example.com/;
                              script-src http://example.com/
    @@ -174,7 +176,7 @@ Content-Security-Policy: connect-src http://example.com/;

    Dans cet exemple, on désactive les scripts écrits à même le document (inline), les opérations eval() et les ressources (images, polices, scripts, etc.) peuvent uniquement être chargées via HTTPS :

    -
    // en-tête HTTP
    +
    // en-tête HTTP
     Content-Security-Policy: default-src https:
     
     // version avec la balise HTML meta
    @@ -185,13 +187,13 @@ Content-Security-Policy: default-src https:
     
     

    Cet exemple est plutôt adapté pour un site historique qui utilise de nombreux scripts écrits dans les documents mais pour lequel on veut s'assurer que les ressources sont chargées via HTTPS et pour lequel on veut désactiver les plugins :

    -
    Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'
    +
    Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'

    Exemple 3

    On ne met pas en place la règle de sécurité mais on récolte les enfreintes qui se seraient produites pour cette règle :

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

    Pour plus d'exemples, consulter les recommandations de Mozilla pour la sécurité web.

    diff --git a/files/fr/web/http/headers/content-security-policy/manifest-src/index.html b/files/fr/web/http/headers/content-security-policy/manifest-src/index.html index 227cbbd03a..a99cf41e12 100644 --- a/files/fr/web/http/headers/content-security-policy/manifest-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/manifest-src/index.html @@ -39,7 +39,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/manifest-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: manifest-src <source>;
    +
    Content-Security-Policy: manifest-src <source>;
     Content-Security-Policy: manifest-src <source> <source>;
     
    @@ -53,11 +53,11 @@ Content-Security-Policy: manifest-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: manifest-src https://example.com/
    +
    Content-Security-Policy: manifest-src https://example.com/

    Cet élément {{HTMLElement("link")}} sera bloqué et ne se chargera pas :

    -
    <link rel="manifest" href="https://not-example.com/manifest">
    +
    <link rel="manifest" href="https://not-example.com/manifest">

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/media-src/index.html b/files/fr/web/http/headers/content-security-policy/media-src/index.html index ed0bd0f4ab..9efb6aef2d 100644 --- a/files/fr/web/http/headers/content-security-policy/media-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/media-src/index.html @@ -39,7 +39,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/media-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: media-src <source>;
    +
    Content-Security-Policy: media-src <source>;
     Content-Security-Policy: media-src <source> <source>;
     
    @@ -53,11 +53,11 @@ Content-Security-Policy: media-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: media-src https://example.com/
    +
    Content-Security-Policy: media-src https://example.com/

    Ces éléments {{HTMLElement("audio")}}, {{HTMLElement("video")}} et {{HTMLElement("track")}} seront bloqués et ne se chargeront pas :

    -
    <audio src="https://not-example.com/audio"></audio>
    +
    <audio src="https://not-example.com/audio"></audio>
     
     <video src="https://not-example.com/video">
       <track kind="subtitles" src="https://not-example.com/subtitles">
    diff --git a/files/fr/web/http/headers/content-security-policy/navigate-to/index.html b/files/fr/web/http/headers/content-security-policy/navigate-to/index.html
    index 79478e5691..2a715438a3 100644
    --- a/files/fr/web/http/headers/content-security-policy/navigate-to/index.html
    +++ b/files/fr/web/http/headers/content-security-policy/navigate-to/index.html
    @@ -17,7 +17,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/navigate-to
     
     

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) navigate-to restreint les URL vers lesquelles un document peut initier une navigation de quelque manière que ce soit, dont {{HTMLElement("form")}} (si {{CSP("form-action")}} n'est pas spécifié), {{HTMLElement("a")}}, {{DOMxRef("window.location")}}, {{DOMxRef("window.open")}}, etc. Elle permet de renforcer les navigations que le document peut initier et non les adresses vers lesquelles ce document peut naviguer.

    -
    +

    Note : Si la directive {{CSP("form-action")}} est présente, la directive navigate-to ne sera pas appliquée sur la navigation par la soumission de formulaire.

    @@ -42,7 +42,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/navigate-to

    Une ou plusieurs sources peuvent être utilisées pour cette directive :

    -
    Content-Security-Policy: navigate-to <source>;
    +
    Content-Security-Policy: navigate-to <source>;
     Content-Security-Policy: navigate-to <source> <source>;
     
    @@ -54,14 +54,14 @@ Content-Security-Policy: navigate-to <source> <source>;

    Configuration par balise <meta>

    -
    <meta http-equiv="Content-Security-Policy" content="navigate-to 'none'">
    +
    <meta http-equiv="Content-Security-Policy" content="navigate-to 'none'">
     

    Cas de violation

    Utiliser l'élément {{HTMLElement("form")}} avec un attribut action défini à un script embarqué en JavaScript résultera en une violation de CSP :

    -
    <meta http-equiv="Content-Security-Policy" content="navigate-to 'none'">
    +
    <meta http-equiv="Content-Security-Policy" content="navigate-to 'none'">
     
     <form action="javascript:alert('Foo')" id="form1" method="post">
       <input type="text" name="fieldName" value="fieldValue">
    diff --git a/files/fr/web/http/headers/content-security-policy/object-src/index.html b/files/fr/web/http/headers/content-security-policy/object-src/index.html
    index 0111f1cf61..46cca9c2ee 100644
    --- a/files/fr/web/http/headers/content-security-policy/object-src/index.html
    +++ b/files/fr/web/http/headers/content-security-policy/object-src/index.html
    @@ -20,7 +20,9 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/object-src
     
     

    Pour définir des types autorisés pour les éléments {{HTMLElement("object")}}, {{HTMLElement("embed")}} et {{HTMLElement("applet")}}, voir la directive {{CSP("plugin-types")}}.

    -

    Les éléments contrôlés par object-src sont considérés peut-être par coïcidence comme des éléments HTML du passé et ne recevront de nouvelles fonctionnalités normalisées (comme les attributs de sécurité sandbox et allow pour <iframe>). De ce fait, il est recommandé de restreindre cette directive, c'est-à-dire la définir explicitement à object-src 'none' dans la mesure du possible.

    +
    +

    Note : Les éléments contrôlés par object-src sont considérés peut-être par coïcidence comme des éléments HTML du passé et ne recevront de nouvelles fonctionnalités normalisées (comme les attributs de sécurité sandbox et allow pour <iframe>). De ce fait, il est recommandé de restreindre cette directive, c'est-à-dire la définir explicitement à object-src 'none' dans la mesure du possible.

    +
    @@ -43,7 +45,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/object-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: object-src <source>;
    +
    Content-Security-Policy: object-src <source>;
     Content-Security-Policy: object-src <source> <source>;
     
    @@ -57,11 +59,11 @@ Content-Security-Policy: object-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: object-src https://example.com/
    +
    Content-Security-Policy: object-src https://example.com/

    Ces éléments {{HTMLElement("object")}}, {{HTMLElement("embed")}} et {{HTMLElement("applet")}} seront bloqués et ne se chargeront pas :

    -
    <embed src="https://not-example.com/flash"></embed>
    +
    <embed src="https://not-example.com/flash"></embed>
     <object data="https://not-example.com/plugin"></object>
     <applet archive="https://not-example.com/java"></applet>
    diff --git a/files/fr/web/http/headers/content-security-policy/plugin-types/index.html b/files/fr/web/http/headers/content-security-policy/plugin-types/index.html index 76e7cf1e38..188eccaf9e 100644 --- a/files/fr/web/http/headers/content-security-policy/plugin-types/index.html +++ b/files/fr/web/http/headers/content-security-policy/plugin-types/index.html @@ -47,7 +47,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/plugin-types

    Un ou plusieurs types MIME peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: plugin-types <type>/<subtype>;
    +
    Content-Security-Policy: plugin-types <type>/<subtype>;
     Content-Security-Policy: plugin-types <type>/<subtype> <type>/<subtype>;
     
    @@ -62,23 +62,23 @@ Content-Security-Policy: plugin-types <type>/<subtype> <type>/

    Pour intedire tous les greffons, la directive {{CSP("object-src")}} doit être définie à 'none'. La directive plugin-types n'est utilisée que si vous autorisez au préalable les greffons avec object-src.

    -
    <meta http-equiv="Content-Security-Policy" content="object-src 'none'">
    +
    <meta http-equiv="Content-Security-Policy" content="object-src 'none'">

    Autoriser le contenu Flash

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: plugin-types application/x-shockwave-flash
    +
    Content-Security-Policy: plugin-types application/x-shockwave-flash

    Cet objet Flash sera autorisé et se chargera (dans la mesure où le navigateur gère Flash) :

    -
    <object data="https://example.com/flash" type="application/x-shockwave-flash"></object>
    +
    <object data="https://example.com/flash" type="application/x-shockwave-flash"></object>

    Autoriser les applets Java

    Pour charger une {{HTMLElement("applet")}}, vous devez spécifier la valeur application/x-java-applet :

    -
    Content-Security-Policy: plugin-types application/x-java-applet
    +
    Content-Security-Policy: plugin-types application/x-java-applet

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/prefetch-src/index.html b/files/fr/web/http/headers/content-security-policy/prefetch-src/index.html index 81d2f5f0fa..62abcf4068 100644 --- a/files/fr/web/http/headers/content-security-policy/prefetch-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/prefetch-src/index.html @@ -36,7 +36,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/prefetch-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: prefetch-src <source>;
    +
    Content-Security-Policy: prefetch-src <source>;
     Content-Security-Policy: prefetch-src <source> <source>;
     
    @@ -50,12 +50,12 @@ Content-Security-Policy: prefetch-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: prefetch-src https://example.com/
    +
    Content-Security-Policy: prefetch-src https://example.com/
     

    Les requêtes émises par ce code généreront des erreurs de réseau puisque les URL demandées ne correspondant pas à la liste de permissions de la directive prefetch-src :

    -
    <link rel="prefetch" src="https://example.org/"></link>
    +
    <link rel="prefetch" src="https://example.org/"></link>
     <link rel="prerender" src="https://example.org/"></link>

    Spécification

    diff --git a/files/fr/web/http/headers/content-security-policy/referrer/index.html b/files/fr/web/http/headers/content-security-policy/referrer/index.html index dc3b894b7c..ee12abb78d 100644 --- a/files/fr/web/http/headers/content-security-policy/referrer/index.html +++ b/files/fr/web/http/headers/content-security-policy/referrer/index.html @@ -18,14 +18,14 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/referrer

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) referrer spécifie des informations dans l'en-tête HTTP {{HTTPHeader("Referer")}} (avec un seul r) pour les liens externes d'une page. Cette API est dépréciée et supprimée des navigateurs.

    -

    Utilisez plutôt l'en-tête HTTP {{HTTPHeader("Referrer-Policy")}}.

    +

    Note : Utilisez plutôt l'en-tête HTTP {{HTTPHeader("Referrer-Policy")}}.

    Syntaxe

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: referrer <referrer-policy>;
    +
    Content-Security-Policy: referrer <referrer-policy>;

    <referrer-policy> peut être une valeur parmi :

    @@ -45,7 +45,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/referrer

    Exemples

    -
    Content-Security-Policy: referrer "none";
    +
    Content-Security-Policy: referrer "none";

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/report-to/index.html b/files/fr/web/http/headers/content-security-policy/report-to/index.html index fe1286dbe1..3011486ccb 100644 --- a/files/fr/web/http/headers/content-security-policy/report-to/index.html +++ b/files/fr/web/http/headers/content-security-policy/report-to/index.html @@ -14,9 +14,9 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/report-to ---
    {{HTTPSidebar}}
    -

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) report-to demande à l'agent utilisateur de rapporter les violations de règles CSP à l'adresse fournie dans un groupe de l'en-tête HTTP Report-To.

    +

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) report-to demande à l'agent utilisateur de rapporter les violations de règles CSP à l'adresse fournie dans un groupe de l'en-tête HTTP Report-To.

    -
    Content-Security-Policy: ...; report-to groupname
    +
    Content-Security-Policy: ...; report-to groupname
     

    Cette directive n'a aucun effet en elle-même, mais prend tout son sens en étant combinée à d'autres directives.

    @@ -39,38 +39,36 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/report-to

    Syntaxe

    -
    Content-Security-Policy: report-to <json-field-value>;
    +
    Content-Security-Policy: report-to <json-field-value>;

    Exemples

    Voir {{HTTPHeader("Content-Security-Policy-Report-Only")}} pour plus d'informations et d'exemples.

    -
    Report-To: { "group": "csp-endpoint",
    -             "max_age": 10886400,
    -             "endpoints": [
    -               { "url": "https://example.com/csp-reports" }
    +
    Report-To: { "group": "csp-endpoint",
    +             "max_age": 10886400,
    +             "endpoints": [
    +               { "url": "https://example.com/csp-reports" }
                  ] },
    -           { "group": "hpkp-endpoint",
    -             "max_age": 10886400,
    -             "endpoints": [
    -               { "url": "https://example.com/hpkp-reports" }
    +           { "group": "hpkp-endpoint",
    +             "max_age": 10886400,
    +             "endpoints": [
    +               { "url": "https://example.com/hpkp-reports" }
                  ] }
    -Content-Security-Policy: ...; report-to csp-endpoint
    +Content-Security-Policy: ...; report-to csp-endpoint
     
    -
    Report-To: { "group": "endpoint-1",
    -             "max_age": 10886400,
    -             "endpoints": [
    -               { "url": "https://example.com/reports" },
    -               { "url": "https://backup.com/reports" }
    +
    Report-To: { "group": "endpoint-1",
    +             "max_age": 10886400,
    +             "endpoints": [
    +               { "url": "https://example.com/reports" },
    +               { "url": "https://backup.com/reports" }
                  ] }
     
    -Content-Security-Policy: ...; report-to endpoint-1
    +Content-Security-Policy: ...; report-to endpoint-1

    Compatibilité des navigateurs

    -
    diff --git a/files/fr/web/http/headers/content-security-policy/script-src-elem/index.html b/files/fr/web/http/headers/content-security-policy/script-src-elem/index.html index 5bebc3b3a7..7d29bbef41 100644 --- a/files/fr/web/http/headers/content-security-policy/script-src-elem/index.html +++ b/files/fr/web/http/headers/content-security-policy/script-src-elem/index.html @@ -41,13 +41,13 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/script-src-elem

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: script-src-elem <source>;
    +
    Content-Security-Policy: script-src-elem <source>;
     Content-Security-Policy: script-src-elem <source> <source>;
     

    script-src-elem peut être utilisée conjointement à {{CSP("script-src")}} :

    -
    Content-Security-Policy: script-src <source>;
    +
    Content-Security-Policy: script-src <source>;
     Content-Security-Policy: script-src-elem <source>;
     
    @@ -61,10 +61,6 @@ Content-Security-Policy: script-src-elem <source>;

    Si la directive script-src-elem est absente, l'agent utilisateur se rabat sur la valeur de la directive {{CSP("script-src")}}, qui elle-même a pour valeur par défaut celle de la directive {{CSP("default-src")}}.

    - -

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/script-src/index.html b/files/fr/web/http/headers/content-security-policy/script-src/index.html index d050eefcaa..a6b2659ae9 100644 --- a/files/fr/web/http/headers/content-security-policy/script-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/script-src/index.html @@ -40,7 +40,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/script-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: script-src <source>;
    +
    Content-Security-Policy: script-src <source>;
     Content-Security-Policy: script-src <source> <source>;
     
    @@ -54,19 +54,19 @@ Content-Security-Policy: script-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: script-src https://example.com/
    +
    Content-Security-Policy: script-src https://example.com/

    Ces scripts seront bloqués et ne seront pas chargés ou exécutés :

    -
    <script src="https://not-example.com/js/library.js"></script>
    +
    <script src="https://not-example.com/js/library.js"></script>

    Notez que les gestionnaires d'évènements par attributs sont aussi bloqués :

    -
    <button id="btn" onclick="doSomething()">
    +
    <button id="btn" onclick="doSomething()">

    Vous devez les remplacer par des appels à la méthode {{domxref("EventTarget.addEventListener", "addEventListener")}} :

    -
    document.getElementById("btn").addEventListener('click', doSomething);
    +
    document.getElementById("btn").addEventListener('click', doSomething);

    Scripts embarqués non fiables

    @@ -76,32 +76,32 @@ Content-Security-Policy: script-src <source> <source>;

    Vous pouvez autoriser les scripts embarqués et les gestionnaires d'évènements par attributs en spécifiant la valeur 'unsafe-inline', des nonces ou des hashs correspondant au script.

    -
    Content-Security-Policy: script-src 'unsafe-inline';
    +
    Content-Security-Policy: script-src 'unsafe-inline';
     

    Cette directive CSP autorisera tous les scripts {{HTMLElement("script")}} embarqués :

    -
    <script>
    +
    <script>
       var inline = 1;
     </script>

    Vous pouvez aussi utiliser un nonce pour autoriser spécifiquement certains éléments {{HTMLElement("script")}} embarqués :

    -
    Content-Security-Policy: script-src 'nonce-2726c7f26c'
    +
    Content-Security-Policy: script-src 'nonce-2726c7f26c'

    Vous devrez alors définir ce nonce sur l'élément {{HTMLElement("script")}} :

    -
    <script nonce="2726c7f26c">
    +
    <script nonce="2726c7f26c">
       var inline = 1;
     </script>

    Autrement, vous pouvez créer des hashs à partir de vos scripts. CSP accepte les algorithmes sha256, sha384 et sha512.

    -
    Content-Security-Policy: script-src 'sha256-B2yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8='
    +
    Content-Security-Policy: script-src 'sha256-B2yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8='

    Lors de la génération du hash, vous ne devez pas inclure les balises et tenir compte de la casse et des caractères blancs (espaces, retours à la ligne, etc.).

    -
    <script>var inline = 1;</script>
    +
    <script>var inline = 1;</script>

    Expressions d'évaluation non fiables

    @@ -124,15 +124,15 @@ Content-Security-Policy: script-src <source> <source>;

    La valeur 'strict-dynamic' spécifie que la confiance explicitement donnée à un script de la page, par le biais d'un nonce ou d'un hash, doit être propagée à tous les scripts chargés par celui-ci. En conséquence, toute liste de permissions ou expressions de sources telles que 'self' ou 'unsafe-inline' sont ignorées. Par exemple, une règle telle que script-src 'strict-dynamic' 'nonce-R4nd0m' https://whitelisted.com/ autoriserait le chargement de scripts comme <script nonce="R4nd0m" src="https://example.com/loader.js"> et s'appliquerait ensuite à tous les scripts chargés par loader.js, mais interdirait les scripts chargés depuis https://whitelisted.com/ à moins qu'ils soient accompagnés d'un nonce ou chargés depuis un script dont la source est de confiance.

    -
    script-src 'strict-dynamic' 'nonce-someNonce'
    +
    script-src 'strict-dynamic' 'nonce-someNonce'

    Ou

    -
    script-src 'strict-dynamic' 'sha256-base64EncodedHash'
    +
    script-src 'strict-dynamic' 'sha256-base64EncodedHash'

    Il est possible de déployer strict-dynamic de manière rétrocompatible, sans chercher à connaitre l'agent utilisateur. Cette directive :

    -
    script-src 'unsafe-inline' https: 'nonce-abcdefg' 'strict-dynamic'
    +
    script-src 'unsafe-inline' https: 'nonce-abcdefg' 'strict-dynamic'

    fonctionnera comme 'unsafe-inline' https: pour les navigateurs supportant CSP1, https: 'nonce-abcdefg' pour ceux supportant CSP2 et comme 'nonce-abcdefg' 'strict-dynamic' pour ceux supportant CSP3.

    diff --git a/files/fr/web/http/headers/content-security-policy/style-src-attr/index.html b/files/fr/web/http/headers/content-security-policy/style-src-attr/index.html index 55ef02df71..efe3b11c9a 100644 --- a/files/fr/web/http/headers/content-security-policy/style-src-attr/index.html +++ b/files/fr/web/http/headers/content-security-policy/style-src-attr/index.html @@ -43,13 +43,13 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/style-src-attr

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: style-src-attr <source>;
    +
    Content-Security-Policy: style-src-attr <source>;
     Content-Security-Policy: style-src-attr <source> <source>;
     

    style-src-attr peut être utilisée conjointement à {{CSP("style-src")}} :

    -
    Content-Security-Policy: style-src <source>;
    +
    Content-Security-Policy: style-src <source>;
     Content-Security-Policy: style-src-attr <source>;

    Sources

    @@ -61,12 +61,6 @@ Content-Security-Policy: style-src-attr <source>;
    Requiert qu'un échantillon du code violant la directive soit inclus dans le rapport envoyé.
    -

    Exemples

    - - -

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/style-src-elem/index.html b/files/fr/web/http/headers/content-security-policy/style-src-elem/index.html index 49f0a0c7d4..ae88af89c0 100644 --- a/files/fr/web/http/headers/content-security-policy/style-src-elem/index.html +++ b/files/fr/web/http/headers/content-security-policy/style-src-elem/index.html @@ -43,13 +43,13 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/style-src-elem

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: style-src-elem <source>;
    +
    Content-Security-Policy: style-src-elem <source>;
     Content-Security-Policy: style-src-elem <source> <source>;
     

    style-src-elem peut être utilisée conjointement à {{CSP("style-src")}} :

    -
    Content-Security-Policy: style-src <source>;
    +
    Content-Security-Policy: style-src <source>;
     Content-Security-Policy: style-src-elem <source>;

    Sources

    @@ -61,12 +61,6 @@ Content-Security-Policy: style-src-elem <source>;
    Requiert qu'un échantillon du code violant la directive soit inclus dans le rapport envoyé.
    -

    Exemples

    - - -

    Spécifications

    diff --git a/files/fr/web/http/headers/content-security-policy/style-src/index.html b/files/fr/web/http/headers/content-security-policy/style-src/index.html index d373fa8477..a8fa19ef1c 100644 --- a/files/fr/web/http/headers/content-security-policy/style-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/style-src/index.html @@ -40,7 +40,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/style-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: style-src <source>;
    +
    Content-Security-Policy: style-src <source>;
     Content-Security-Policy: style-src <source> <source>;
     
    @@ -54,11 +54,11 @@ Content-Security-Policy: style-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: style-src https://example.com/
    +
    Content-Security-Policy: style-src https://example.com/

    Ces feuilles de style seront bloquées et ne se chargeront pas :

    -
    <link href="https://not-example.com/styles/main.css" rel="stylesheet" type="text/css" />
    +
    <link href="https://not-example.com/styles/main.css" rel="stylesheet" type="text/css" />
     
     <style>
     #inline-style { background: red; }
    @@ -70,21 +70,21 @@ Content-Security-Policy: style-src <source> <source>;
     
     

    De même que les styles chargés avec l'en-tête {{HTTPHeader("Link")}} :

    -
    Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet
    +
    Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet
     

    Les attributes de style seront aussi bloqués :

    -
    <div style="display:none">Foo</div>
    +
    <div style="display:none">Foo</div>

    De même que les styles ajoutés par JavaScript en définissant l'attribut style directement, ou en définissant la propriété {{domxref("CSSStyleDeclaration.cssText", "cssText")}} :

    -
    document.querySelector('div').setAttribute('style', 'display:none;');
    +
    document.querySelector('div').setAttribute('style', 'display:none;');
     document.querySelector('div').style.cssText = 'display:none;';

    Toutefois, les propriétés de styles qui sont définies directement dans l'attribut {{domxref("HTMLElement.style", "style")}} ne seront pas bloquées, permettant aux utilisateurs de manipuler sainement les styles avec JavaScript :

    -
    document.querySelector('div').style.display = 'none';
    +
    document.querySelector('div').style.display = 'none';

    Ce genre de manipulations peut être bloqué en désactivant JavaScript au moyen de la directive CSP {{CSP("script-src")}}.

    @@ -96,12 +96,12 @@ document.querySelector('div').style.cssText = 'display:none;';

    Vous pouvez autoriser les styles embarqués en spécifiant la valeur 'unsafe-inline', des nonces ou des hashs correspondant à la feuille de style.

    -
    Content-Security-Policy: style-src 'unsafe-inline';
    +
    Content-Security-Policy: style-src 'unsafe-inline';
     

    Cette directive CSP autorisera toutes les feuilles de styles embarquées telles que l'élément {{HTMLElement("style")}} et l'attribut style sur tous les éléments :

    -
    <style>
    +
    <style>
     #inline-style { background: red; }
     </style>
     
    @@ -110,21 +110,21 @@ document.querySelector('div').style.cssText = 'display:none;';

    Vous pouvez aussi utiliser un nonce pour autoriser spécifiquement certains éléments {{HTMLElement("style")}} :

    -
    Content-Security-Policy: style-src 'nonce-2726c7f26c'
    +
    Content-Security-Policy: style-src 'nonce-2726c7f26c'

    Vous devrez alors définir ce nonce sur l'élément {{HTMLElement("style")}} :

    -
    <style nonce="2726c7f26c">
    +
    <style nonce="2726c7f26c">
     #inline-style { background: red; }
     </style>

    Autrement, vous pourrez créer des hashs à partir de vos feuilles de styles. CSP accepte les algorithmes sha256, sha384 et sha512.

    -
    Content-Security-Policy: style-src 'sha256-a330698cbe9dc4ef1fb12e2ee9fc06d5d14300262fa4dc5878103ab7347e158f'
    +
    Content-Security-Policy: style-src 'sha256-a330698cbe9dc4ef1fb12e2ee9fc06d5d14300262fa4dc5878103ab7347e158f'

    Lors de la génération du hash, vous ne devez pas inclure les balises et tenir compte de la casse et des caractères blancs (espaces, retours à la ligne, etc.).

    -
    <style>#inline-style { background: red; }</style>
    +
    <style>#inline-style { background: red; }</style>

    Style non fiables

    diff --git a/files/fr/web/http/headers/content-security-policy/trusted-types/index.html b/files/fr/web/http/headers/content-security-policy/trusted-types/index.html index 447823ede5..f1c5d12b6d 100644 --- a/files/fr/web/http/headers/content-security-policy/trusted-types/index.html +++ b/files/fr/web/http/headers/content-security-policy/trusted-types/index.html @@ -14,13 +14,13 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/trusted-types ---
    {{HTTPSidebar}}
    -

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) trusted-types {{experimental_inline}} informe l'agent utilisateur qu'il faut restreindre la création de règles Trusted Types (fonctions qui créent des valeurs typées non falsifiables, dans le but de les passer au puits XSS du DOM au lieu de chaines de caractères).

    +

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) trusted-types {{experimental_inline}} informe l'agent utilisateur qu'il faut restreindre la création de règles Trusted Types (fonctions qui créent des valeurs typées non falsifiables, dans le but de les passer au puits XSS du DOM au lieu de chaines de caractères).

    -

    Conjointement à la directive require-trusted-types-for, cette directive permet aux auteurs de définir des règles empêchant d'injecter des données dans le DOM et donc de réduire la fenêtre de tir pour les attaques XSS sur le DOM à quelques pans isolés de la base de code d'une application, facilitant donc son contrôle et sa relecture. Cette directive déclare une liste de permissions de noms de règles de Trusted Types créée avec TrustedTypes.createPolicy à partir de l'API Trusted Types.

    +

    Conjointement à la directive require-trusted-types-for, cette directive permet aux auteurs de définir des règles empêchant d'injecter des données dans le DOM et donc de réduire la fenêtre de tir pour les attaques XSS sur le DOM à quelques pans isolés de la base de code d'une application, facilitant donc son contrôle et sa relecture. Cette directive déclare une liste de permissions de noms de règles de Trusted Types créée avec TrustedTypes.createPolicy à partir de l'API Trusted Types.

    Syntaxe

    -
    Content-Security-Policy: trusted-types;
    +
    Content-Security-Policy: trusted-types;
     Content-Security-Policy: trusted-types 'none';
     Content-Security-Policy: trusted-types <policyName>;
     Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates';
    @@ -39,11 +39,11 @@ Content-Security-Policy: trusted-types <policyName> <policyName> 'al
     
     

    Soit l'en-tête CSP :

    -
    Content-Security-Policy: trusted-types foo bar 'allow-duplicates';
    +
    Content-Security-Policy: trusted-types foo bar 'allow-duplicates';

    Ce code génèrera une erreur car une des règles créées a un nom non autorisé :

    -
    if (typeof trustedTypes !== 'undefined') {
    +
    if (typeof trustedTypes !== 'undefined') {
       const policyFoo = trustedTypes.createPolicy('foo', {});
       const policyFoo2 = trustedTypes.createPolicy('foo', {});
       const policyBaz = trustedTypes.createPolicy('baz', {}); // Throws and dispatches a SecurityPolicyViolationEvent.
    diff --git a/files/fr/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html b/files/fr/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html
    index fd0c579403..3b0defb999 100644
    --- a/files/fr/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html
    +++ b/files/fr/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html
    @@ -19,45 +19,47 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-reques
     
     

    La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) upgrade-insecure-requests informe l'agent utilisateur de traiter toutes les URL non sécurisées d'un site (servies avec HTTP) comme si elles avaient été remplacées par des URL sécurisées (servies avec HTTPS). Cette directive est prévue pour les sites web ayant un grand nombre d'URL non sécurisées héritées du passé et qui ont besoin d'être récrites.

    -

    La directive upgrade-insecure-requests est évaluée avant la directive {{CSP("block-all-mixed-content")}} et si cette elle est définie, cette dernière est effectivement ignorée. Il est recommendé de ne définir que l'une des deux directives mais non les deux, à moins que vous souhaitiez forcer HTTPS sur les anciens navigateurs qui ne le font pas après une redirection vers HTTP.

    +
    +

    Note : La directive upgrade-insecure-requests est évaluée avant la directive {{CSP("block-all-mixed-content")}} et si cette elle est définie, cette dernière est effectivement ignorée. Il est recommendé de ne définir que l'une des deux directives mais non les deux, à moins que vous souhaitiez forcer HTTPS sur les anciens navigateurs qui ne le font pas après une redirection vers HTTP.

    +

    The upgrade-insecure-requests directive will not ensure that users visiting your site via links on third-party sites will be upgraded to HTTPS for the top-level navigation and thus does not replace the {{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}}) header, which should still be set with an appropriate max-age to ensure that users are not subject to SSL stripping attacks.

    Syntaxe

    -
    Content-Security-Policy: upgrade-insecure-requests;
    +
    Content-Security-Policy: upgrade-insecure-requests;

    Exemples

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: upgrade-insecure-requests;
    +
    Content-Security-Policy: upgrade-insecure-requests;
     

    Et cette balise meta :

    -
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    +
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

    Avec cet en-tête défini sur le domaine example.com voulant migrer d'HTTP à HTTPS, les requêtes pour des ressources non sécurisées et non navigationnelles sont automatiquement converties (qu'elles soient internes ou externes).

    -
    <img src="http://example.com/image.png">
    +
    <img src="http://example.com/image.png">
     <img src="http://not-example.com/image.png">

    Ces URL seront récrites avant que la requête soit envoyée, signifiant qu'aucune requête non sécurisée ne sera envoyée. Notez que si la ressource demandée n'est pas actuellement disponible via HTTPS, la requête échouera sans se rabattre sur HTTP.

    -
    <img src="https://example.com/image.png">
    +
    <img src="https://example.com/image.png">
     <img src="https://not-example.com/image.png">

    Les conversions navigationnelles vers des ressources externes amènent un risque significatif  de dysfonctionnement étant donné que des requêtes peuvent n'être pas converties, par exemple celles-ci :

    -
    <a href="https://example.com/">Home</a>
    +
    <a href="https://example.com/">Home</a>
     <a href="http://not-example.com/">Home</a>

    Identifier des requêtes non sécurisées

    À l'aide de l'en-tête {{HTTPHeader("Content-Security-Policy-Report-Only")}} et de la directive {{CSP("report-uri")}}, vous pouvez mettre en place une stratégie de rapportage de violations sans bloquage conjointement à une stratégie de conversion comme :

    -
    Content-Security-Policy: upgrade-insecure-requests; default-src https:
    +
    Content-Security-Policy: upgrade-insecure-requests; default-src https:
     Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint

    De cette manière, vous convertirez toujours les requêtes non sécurisées sur votre site sécurisé mais la stratégie de rapportage identifiera les requêtes non sécurisées et les rapportera à l'adresse fournie.

    diff --git a/files/fr/web/http/headers/content-security-policy/worker-src/index.html b/files/fr/web/http/headers/content-security-policy/worker-src/index.html index 5854d16fc7..fd9ee4f21f 100644 --- a/files/fr/web/http/headers/content-security-policy/worker-src/index.html +++ b/files/fr/web/http/headers/content-security-policy/worker-src/index.html @@ -42,7 +42,7 @@ translation_of: Web/HTTP/Headers/Content-Security-Policy/worker-src

    Une ou plusieurs sources peuvent être autorisées pour cette directive :

    -
    Content-Security-Policy: worker-src <source>;
    +
    Content-Security-Policy: worker-src <source>;
     Content-Security-Policy: worker-src <source> <source>;
     
    @@ -56,11 +56,11 @@ Content-Security-Policy: worker-src <source> <source>;

    Soit cet en-tête CSP :

    -
    Content-Security-Policy: worker-src https://example.com/
    +
    Content-Security-Policy: worker-src https://example.com/

    {{domxref("Worker")}}, {{domxref("SharedWorker")}} et {{domxref("ServiceWorker")}} seront bloqués et ne se chargeront pas :

    -
    <script>
    +
    <script>
       var blockedWorker = new Worker("data:application/javascript,...");
       blockedWorker = new SharedWorker("https://not-example.com/");
       navigator.serviceWorker.register('https://not-example.com/sw.js');
    -- 
    cgit v1.2.3-54-g00ecf