HTTP konfigurieren
Überblick über die Konfigurationsmöglichkeiten für Nette HTTP.
Wenn Sie nicht das gesamte Framework, sondern nur diese Bibliothek verwenden, lesen Sie , wie Sie die Konfiguration laden.
HTTP-Kopfzeilen
Aus Sicherheitsgründen sendet das Framework einen Header X-Frame-Options: SAMEORIGIN
, der besagt, dass eine Seite
nur dann innerhalb einer anderen Seite angezeigt werden kann (im Element <iframe>
) nur angezeigt werden kann,
wenn sie sich auf derselben Domäne befindet. Dies kann in bestimmten Situationen unerwünscht sein (z. B. wenn Sie eine
Facebook-Anwendung entwickeln), daher kann das Verhalten durch die Einstellung von
frames: http://allowed-host.com
.
Sicherheitsrichtlinien für Inhalte
Header Content-Security-Policy
(im Folgenden als CSP bezeichnet) lassen sich leicht zusammenstellen, ihre
Beschreibung ist in der CSP-Beschreibung zu finden. CSP-Direktiven (wie z. B.
script-src
) können zur besseren Lesbarkeit entweder als Zeichenketten gemäß der Spezifikation oder als Arrays von
Werten geschrieben werden. Dann ist es nicht notwendig, Anführungszeichen um Schlüsselwörter wie 'self'
zu setzen.
Nette generiert auch automatisch einen Wert von nonce
, so dass 'nonce-y4PopTLM=='
im Header
gesendet wird.
Verwenden Sie <script n:nonce>...</script>
in den Vorlagen und der Nonce-Wert wird automatisch
ausgefüllt. Die Erstellung sicherer Websites in Nette ist wirklich einfach.
In ähnlicher Weise können die Header Content-Security-Policy-Report-Only
(die parallel zu CSP verwendet werden
können) und Feature Policy hinzugefügt
werden:
HTTP-Cookie
Sie können die Standardwerte einiger Parameter der Methoden Nette\Http\Response::setCookie() und session ändern.
Die Option cookieDomain
bestimmt, welche Domänen (Ursprünge) Cookies akzeptieren können. Ist sie nicht
angegeben, wird das Cookie von derselben (Sub-)Domain akzeptiert, die es gesetzt hat, ausgenommen deren Subdomains. Wenn
cookieDomain
angegeben ist, werden auch Subdomains einbezogen. Daher ist die Angabe von cookieDomain
weniger restriktiv als das Weglassen.
Wenn z. B. cookieDomain: nette.org
angegeben wird, ist das Cookie auch auf allen Subdomains wie
doc.nette.org
verfügbar. Dies kann auch mit dem speziellen Wert domain
, also
cookieDomain: domain
erreicht werden.
Der Standardwert von cookieSecure
ist auto
, d. h. wenn die Website über HTTPS läuft, werden Cookies
mit dem Flag Secure
gesendet und sind daher nur über HTTPS verfügbar.
HTTP-Proxy
Wenn die Website hinter einem HTTP-Proxy läuft, geben Sie die IP-Adresse des Proxys ein, damit die Erkennung von
HTTPS-Verbindungen korrekt funktioniert, sowie die IP-Adresse des Clients. Das heißt, damit Nette\Http\Request::getRemoteAddress() und isSecured() die richtigen Werte zurückgeben und Links mit dem Protokoll https:
in den Vorlagen erzeugt werden.
Session
Grundeinstellungen für Sessionen:
Mit der Option autoStart
wird festgelegt, wann die Session gestartet werden soll. Der Wert always
bedeutet, dass die Session immer gestartet wird, wenn die Anwendung startet. Der Wert smart
bedeutet, dass die
Session beim Starten der Anwendung nur dann gestartet wird, wenn sie bereits existiert, oder in dem Moment, in dem wir aus ihr
lesen oder in sie schreiben wollen. Mit dem Wert never
schließlich wird der automatische Start der Session
deaktiviert.
Sie können auch alle PHP-Session-Direktiven (im camelCase-Format) und auch readAndClose setzen. Beispiel:
Sessions-Cookie
Das Sessions-Cookie wird mit denselben Parametern wie andere Cookies gesendet, aber Sie können diese Parameter ändern:
Die Option cookieSamesite
bestimmt, ob das Cookie bei herkunftsübergreifenden Anfragen gesendet wird, was einen
gewissen Schutz gegen Cross-Site Request
Forgery-Angriffe bietet.
DI-Dienste
Diese Dienste werden dem DI-Container hinzugefügt:
Name | Typ | Beschreibung |
---|---|---|
http.request |
Nette\Http\Request | HTTP-Anfrage |
http.response |
Nette\Http\Response | HTTP-Antwort |
session.session |
Nette\Http\Session | Sitzungsverwaltung |