CSP: base-uri

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.

Die HTTP-Richtlinie Content-Security-Policy base-uri beschränkt die URLs, die im <base> Element eines Dokuments verwendet werden können. Wenn dieser Wert fehlt, ist jede URI erlaubt. Wenn diese Direktive fehlt, verwendet der Benutzeragent den Wert im <base> Element.

CSP-Version 2
Direktivtyp Dokument-Direktive
default-src Rückfall Nein. Wenn dies nicht gesetzt wird, ist jede URL erlaubt.

Syntax

http
Content-Security-Policy: base-uri 'none';
Content-Security-Policy: base-uri <source-expression-list>;

Diese Direktive kann einen der folgenden Werte haben:

'none'

Es darf keine Basis-URI mit einem <base> Element gesetzt werden. Die einfachen Anführungszeichen sind obligatorisch.

<source-expression-list>

Eine durch Leerzeichen getrennte Liste von Quellausdruck Werten. Ein <base> Element darf eine Basis-URI setzen, wenn sein Wert mit einem der angegebenen Quellausdrücke übereinstimmt.

Quellausdrücke werden als Schlüsselwortwerte oder URL-Muster angegeben: die Syntax für jeden Quellausdruck ist in CSP-Quellwerte angegeben. Allerdings gilt für base-uri nur der folgende Teil dieser Werte:

  • <host-source>
  • <scheme-source>
  • der Schlüsselwortwert 'self'.

Beispiele

Meta-Tag-Konfiguration

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

Apache-Konfiguration

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

Nginx-Konfiguration

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

Verletzungsfall

Da Ihre Domain nicht example.com ist, führt ein <base> Element mit einem href, das auf https://example.com gesetzt ist, zu einem CSP-Verstoß.

html
<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/'
// because it violates the following Content Security Policy
// directive: "base-uri 'self'"
-->

Spezifikationen

Specification
Content Security Policy Level 3
# directive-base-uri

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch