Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #3883 - Remove {{page}} from Web/HTTP #4534

Merged
merged 26 commits into from
Mar 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
---
title: 'CSP: base-uri'
title: 'CSP : base-uri'
slug: Web/HTTP/Headers/Content-Security-Policy/base-uri
tags:
- CSP
- Content-Security-Policy
- Directive
- HTTP
- Reference
- Security
- Sécurité
- source
translation_of: Web/HTTP/Headers/Content-Security-Policy/base-uri
browser-compat: http.headers.csp.Content-Security-Policy.base-uri
---
{{HTTPSidebar}}

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`base-uri`** restreint les URL qui peuvent être utilisées comme valeur d'un élément {{HTMLElement("base")}}. Si cette valeur est absente, alors toutes les adresses sont autorisées. Si cette directive est absente, l'agent utilisateur va utiliser la valeur dans l'élément {{HTMLElement("base")}}.
La directive HTTP [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy) **`base-uri`** restreint les URL qui peuvent être utilisées comme valeur d'un élément [`<base>`](/fr/docs/Web/HTML/Element/base). Si cette valeur est absente, alors toutes les adresses sont autorisées. Si cette directive est absente, l'agent utilisateur utilisera la valeur de l'élément [`<base>`](/fr/docs/Web/HTML/Element/base).

<table class="properties">
<tbody>
Expand All @@ -24,53 +16,55 @@ La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`base-uri`**
</tr>
<tr>
<th scope="row">Type de directive</th>
<td>{{Glossary("Document directive")}}</td>
<td><a href="/fr/docs/Glossary/Document_directive">Directive de document</a></td>
</tr>
<tr>
<th scope="row">{{CSP("default-src")}} par défaut</th>
<td>Non, ne pas la définir autorise toutes les URL</td>
<th scope="row">Utilisation de <a href="/fr/docs/Web/HTTP/Headers/Content-Security-Policy/default-src"><code>default-src</code></a> par défaut</th>
<td>Non, ne pas définir cette directive autorise toutes les URL</td>
</tr>
</tbody>
</table>

## Syntaxe

Une ou plusieurs _sources_ peuvent être autorisées pour cette directive :
Une ou plusieurs *sources* peuvent être autorisées pour cette directive&nbsp;:

Content-Security-Policy: base-uri <source>;
Content-Security-Policy: base-uri <source> <source>;
```http
Content-Security-Policy: base-uri <source>;
Content-Security-Policy: base-uri <source> <source>;
```

### Sources

Bien que cette directive utilise les mêmes arguments que d'autres directives CSP, certains d'entre eux n'ont pas de sens concernant l'élément {{HTMLElement("base")}}, comme les valeurs `'unsafe-inline'` et `'strict-dynamic'`
Cette directive utilise en grande partie les mêmes valeurs de source comme arguments que les autres directives CSP&nbsp;: [valeurs sources pour CSP](/fr/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources).

{{page("fr/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}
On notera toutefois que certaines de ces valeurs n'ont pas de sens pour `base-uri`, à l'instar des mots-clés `'unsafe-inline'` et `'strict-dynamic'`.

## Exemples

### Configuration par balise \<meta>
### Configuration avec la balise `<meta>`

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

### Configuration par Apache
### Configuration avec Apache

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

### Configuration par Nginx
### Configuration avec Nginx

```bash
```
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.
À partir du moment où votre domaine n'est pas `example.com`, un élément [`<base>`](/fr/docs/Web/HTML/Element/base) avec son attribut `href` défini à `https://example.com` résultera en une violation de CSP.

```html example-bad
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">
Expand All @@ -83,17 +77,14 @@ add_header Content-Security-Policy "base-uri 'self';"

## Spécifications

| Spécification | Statut | Commentaire |
| ---------------------------------------------------------------------------- | ---------------------------- | -------------------- |
| {{specName("CSP 3.0", "#directive-base-uri", "base-uri")}} | {{Spec2('CSP 3.0')}} | Inchangé. |
| {{specName("CSP 1.1", "#directive-base-uri", "base-uri")}} | {{Spec2('CSP 1.1')}} | Définition initiale. |
{{Specifications}}

## Compatibilité des navigateurs

{{Compat("http.headers.csp.base-uri")}}
{{Compat}}

## Voir aussi

- {{HTTPheader("Content-Security-Policy")}}
- {{HTMLElement("base")}}
- {{domxref("Node.baseURI")}}
- [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy)
- [`<base>`](/fr/docs/Web/HTML/Element/base)
- [`Node.baseURI`](/fr/docs/Web/API/Node/baseURI)
Original file line number Diff line number Diff line change
@@ -1,22 +1,12 @@
---
title: 'CSP: child-src'
title: 'CSP : child-src'
slug: Web/HTTP/Headers/Content-Security-Policy/child-src
tags:
- CSP
- Child
- Content-Security-Policy
- Directive
- HTTP
- Reference
- Security
- Sécurité
- child-src
- source
translation_of: Web/HTTP/Headers/Content-Security-Policy/child-src
browser-compat: http.headers.csp.Content-Security-Policy.child-src
---
{{HTTPSidebar}}

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`child-src`** définit les sources valides de [web workers](/en-US/docs/Web/API/Web_Workers_API) et de contextes de navigations imbriqués chargés au moyen d'éléments tels que {{HTMLElement("frame")}} et {{HTMLElement("iframe")}}. Pour les workers, les requêtes conformes sont traitées comme des erreurs de réseau fatales par l'agent utilisateur.
La directive HTTP [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy) **`child-src`** définit les sources valides de [<i lang="en">web workers</i>](/fr/docs/Web/API/Web_Workers_API) et de contextes de navigations imbriqués chargés au moyen d'éléments tels que [`<frame>`](/fr/docs/Web/HTML/Element/frame) et [`<iframe>`](/fr/docs/Web/HTML/Element/iframe). Pour les <i lang="en">workers</i>, les requêtes non-conformes sont traitées comme des erreurs de réseau fatales par l'agent utilisateur.

<table class="properties">
<tbody>
Expand All @@ -26,62 +16,62 @@ La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`child-src`*
</tr>
<tr>
<th scope="row">Type de directive</th>
<td>{{Glossary("Fetch directive")}}</td>
<td><a href="/fr/docs/Glossary/Fetch_directive">Directive de récupération</a></td>
</tr>
<tr>
<th scope="row">{{CSP("default-src")}} par défaut</th>
<th scope="row">Utilisation de <a href="/fr/docs/Web/HTTP/Headers/Content-Security-Policy/default-src"><code>default-src</code></a> par défaut</th>
<td>
Oui, si cette directive est absente, l'agent utilisateur consultera la
directive <code>default-src</code>
Oui, si cette directive est absente, l'agent utilisateur consultera la directive <code>default-src</code>
</td>
</tr>
</tbody>
</table>

## Syntaxe

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

Content-Security-Policy: child-src <source>;
Content-Security-Policy: child-src <source> <source>;
```http
Content-Security-Policy: child-src <source>;
Content-Security-Policy: child-src <source> <source>;
```

### Sources

{{page("Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}
`<source>` peut être n'importe quelle valeur parmi celles énumérées dans [l'article sur les valeurs sources CSP](/fr/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources).

On notera que cet ensemble de valeurs peut être utilisé pour toutes les [directives de récupération](/fr/docs/Glossary/Fetch_directive) (et pour [certaines autres directives](/fr/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#directives_associées)).

## Exemples

### Cas de violation

Soit cet en-tête CSP :
Soit cet en-tête CSP&nbsp;:

```bash
```http
Content-Security-Policy: child-src https://example.com/
```

Cet {{HTMLElement("iframe")}} et ce worker seront bloqués et ne se chargeront pas :
Cette [`<iframe>`](/fr/docs/Web/HTML/Element/iframe) et ce <i lang="en">worker</i> seront bloqués et ne se chargeront pas&nbsp;:

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

<script>
var blockedWorker = new Worker("data:application/javascript,...");
let blockedWorker = new Worker("data:application/javascript,...");
</script>
```

## Spécifications

| Spécification | Statut | Commentaire |
| -------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
| {{specName("CSP 3.0", "#directive-child-src", "child-src")}} | {{Spec2('CSP 3.0')}} | Inchangé. |
| {{specName("CSP 1.1", "#directive-child-src", "child-src")}} | {{Spec2('CSP 1.1')}} | Définition initiale. |
{{Specifications}}

## Compatibilité des navigateurs

{{Compat("http.headers.csp.Content-Security-Policy.child-src")}}
{{Compat}}

## Voir aussi

- {{HTTPHeader("Content-Security-Policy")}}
- {{HTMLElement("frame")}} and {{HTMLElement("iframe")}}
- {{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}}
- [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy)
- [`<frame>`](/fr/docs/Web/HTML/Element/frame) et [`<iframe>`](/fr/docs/Web/HTML/Element/iframe)
- [`Worker`](/fr/docs/Web/API/Worker), [`SharedWorker`](/fr/docs/Web/API/SharedWorker), [`ServiceWorker`](/fr/docs/Web/API/ServiceWorker)
Original file line number Diff line number Diff line change
@@ -1,30 +1,21 @@
---
title: 'CSP: connect-src'
title: 'CSP : connect-src'
slug: Web/HTTP/Headers/Content-Security-Policy/connect-src
tags:
- CSP
- Content-Security-Policy
- Directive
- HTTP
- Reference
- Security
- Sécurité
- connect-src
- source
translation_of: Web/HTTP/Headers/Content-Security-Policy/connect-src
browser-compat: http.headers.csp.Content-Security-Policy.connect-src
---
{{HTTPSidebar}}

La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`connect-src`** restreint les URL qui peuvent être chargées en utilisant des interfaces de programmation. Les API qui sont affectées sont :
La directive HTTP [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy) **`connect-src`** restreint les URL qui peuvent être chargées en utilisant des interfaces de programmation. Les API concernées sont&nbsp;:

- {{HTMLElement("a")}} {{htmlattrxref("ping", "a")}},
- {{domxref("Fetch")}},
- {{domxref("XMLHttpRequest")}},
- {{domxref("WebSocket")}},
- {{domxref("EventSource")}}, and
- {{domxref("Navigator.sendBeacon()")}}.
- [`<a>`](/fr/docs/Web/HTML/Element/a) et l'attribut [`ping`](/fr/docs/Web/HTML/Element/a#ping),
- [`fetch()`](/fr/docs/Web/API/fetch),
- [`XMLHttpRequest`](/fr/docs/Web/API/XMLHttpRequest),
- [`WebSocket`](/fr/docs/Web/API/WebSocket),
- [`EventSource`](/fr/docs/Web/API/EventSource),
- [`Navigator.sendBeacon()`](/fr/docs/Web/API/Navigator/sendBeacon).

> **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 [ce ticket (en anglais)](https://github.com/w3c/webappsec-csp/issues/7).

<table class="properties">
<tbody>
Expand All @@ -34,77 +25,77 @@ La directive HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) **`connect-src
</tr>
<tr>
<th scope="row">Type de directive</th>
<td>{{Glossary("Fetch directive")}}</td>
<td><a href="/fr/docs/Glossary/Fetch_directive">Directive de récupération</a></td>
</tr>
<tr>
<th scope="row">{{CSP("default-src")}} par défaut</th>
<th scope="row">Utilisation de <a href="/fr/docs/Web/HTTP/Headers/Content-Security-Policy/default-src"><code>default-src</code></a> par défaut</th>
<td>
Oui, si cette directive est absente, l'agent utilisateur consultera la
directive <code>default-src</code>
Oui, si cette directive est absente, l'agent utilisateur consultera la directive <code>default-src</code>.
</td>
</tr>
</tbody>
</table>

## Syntaxe

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

Content-Security-Policy: connect-src <source>;
Content-Security-Policy: connect-src <source> <source>;
```http
Content-Security-Policy: connect-src <source>;
Content-Security-Policy: connect-src <source> <source>;
```

### Sources

{{page("/fr/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "common_sources")}}
`<source>` peut être n'importe quelle valeur parmi celles énumérées dans [l'article sur les valeurs sources CSP](/fr/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources).

On notera que cet ensemble de valeurs peut être utilisé pour toutes les [directives de récupération](/fr/docs/Glossary/Fetch_directive) (et pour [certaines autres directives](/fr/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#directives_associées)).

## Exemples

### Cas de violation

Soit cet en-tête CSP :
Soit cet en-tête CSP&nbsp;:

```bash
```http
Content-Security-Policy: connect-src https://example.com/
```

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

```html
<a ping="https://not-example.com">

<script>
var xhr = new XMLHttpRequest();
let xhr = new XMLHttpRequest();
xhr.open('GET', 'https://not-example.com/');
xhr.send();

var ws = new WebSocket("https://not-example.com/");
let ws = new WebSocket("https://not-example.com/");

var es = new EventSource("https://not-example.com/");
let es = new EventSource("https://not-example.com/");

navigator.sendBeacon("https://not-example.com/", { ... });
</script>
```

## Spécifications

| Spécification | Statut | Commentaire |
| ------------------------------------------------------------------------------------ | ---------------------------- | -------------------- |
| {{specName("CSP 3.0", "#directive-connect-src", "connect-src")}} | {{Spec2('CSP 3.0')}} | Inchangé. |
| {{specName("CSP 1.1", "#directive-connect-src", "connect-src")}} | {{Spec2('CSP 1.1')}} | Définition initiale. |
{{Specifications}}

## Compatibilité des navigateurs

{{Compat("http.headers.csp.Content-Security-Policy.connect-src")}}
{{Compat}}

## Notes de compatibilité

- Avant Firefox 23, `xhr-src` était utilisé en lieu et place de la directive `connect-src` et ne s'appliquait qu'à l'API {{domxref("XMLHttpRequest")}}.
- Avant Firefox 23, `xhr-src` était utilisé en lieu et place de la directive `connect-src` et ne s'appliquait qu'à l'API [`XMLHttpRequest`](/fr/docs/Web/API/XMLHttpRequest).

## Voir aussi

- {{HTTPHeader("Content-Security-Policy")}}
- {{HTMLElement("a")}} {{htmlattrxref("ping", "a")}}
- {{domxref("Fetch")}}
- {{domxref("XMLHttpRequest")}}
- {{domxref("WebSocket")}}
- {{domxref("EventSource")}}
- [`Content-Security-Policy`](/fr/docs/Web/HTTP/Headers/Content-Security-Policy)
- [`<a>`](/fr/docs/Web/HTML/Element/a) et l'attribut [`ping`](/fr/docs/Web/HTML/Element/a#ping)
- [`fetch()`](/fr/docs/Web/API/fetch)
- [`XMLHttpRequest`](/fr/docs/Web/API/XMLHttpRequest)
- [`WebSocket`](/fr/docs/Web/API/WebSocket)
- [`EventSource`](/fr/docs/Web/API/EventSource)
Loading