


Inhaltssicherheitsrichtlinie (CSP): Eine umfassende Anleitung zur Websicherheit
Inhaltssicherheitsrichtlinie (CSP) ist ein entscheidender Sicherheitsmechanismus, der Websites gegen Inhaltsinjektionsangriffe, hauptsächlich Cross-Site-Skripten (XSS), schützt. Diese deklarative Richtlinie ermöglicht es Entwicklern, einen Whitelisten vertrauenswürdige Ressourcen -Ursprünge zu erstellen, um zu kontrollieren, wie der Browser Ressourcen lädt, Inline -Stile und -Skripte verwendet und die dynamische JavaScript -Bewertung übernimmt (z. B. mit eval()
). Jeder Versuch, Ressourcen von außen zu laden, ist blockiert.
Schlüsselkonzepte:
- Whitelist -Ansatz: CSP arbeitet durch Definieren erlaubter Quellen, blockiert alles andere.
- HTTP -Header Lieferung: Die Richtlinie wird über den HTTP -Header
Content-Security-Policy
http implementiert. - Direktive basierte Steuerung: Der Header enthält Anweisungen, die zulässige Domänen angeben und die JavaScript-Ausführung einschränken, um Injektionsangriffe zu verhindern.
- Verstöße berichten: Die Verstöße gegen die
report-uri
-Richtlinienprotokolle CSP, von unschätzbarem Wert für Produktionsumgebungen. Dies sendet einen JSON -Bericht, in dem der Verstoß an eine bestimmte URL detailliert wird.
Wie CSP funktioniert:
CSP, eine W3C -Kandidatenempfehlung, verwendet den Content-Security-Policy
-Header, um Anweisungen zu liefern. Zu den Schlüsselanweisungen gehören: default-src
, script-src
, object-src
, style-src
, img-src
, media-src
, frame-src
, font-src
und connect-src
. default-src
fungiert als Fallback für nicht spezifizierte Richtlinien.
Richtlinien folgen einem konsistenten Muster:
-
self
: Bezieht sich auf die aktuelle Domäne. - URL-Liste: Platziert getrennte URLs angeben zulässige Herkunft.
-
none
: verbietet das Laden von Ressourcen für eine bestimmte Richtlinie (z. B. Plugins blockiert).object-src 'none'
<code>Content-Security-Policy: default-src 'self';</code>Jeder Versuch, aus einer anderen Domäne zu laden, wird mit einer Konsolennachricht blockiert. CSP schränkt von Natur aus die Inline -Skripte und die dynamische Code -Bewertung ein und mildern die Injektionsrisiken signifikant.
) ermöglichen jedoch die Einbeziehung von Subdomänen (z. B. ` .mycdn.com`). Jede Richtlinie erfordert eine explizite Domäne/Subdomain -Auflistung. Sie erben nicht aus früheren Richtlinien.
für Daten -URLs enthalten data:
in die Direktive (z. B. img-src 'data:'
). unsafe-inline
(für script-src
und style-src
) erlaubt Inline <script></script>
und <style></style>
Tags, und unsafe-eval
(für script-src
) ermöglicht eine dynamische Code -Bewertung. Beide verwenden Opt-In-Richtlinien; Das Auslassen von ihnen erzwingt Einschränkungen.
Browserkompatibilität:
CSP 1.0 genießt einen breiten Browser -Support, wobei ältere Internet -Explorer -Versionen eine begrenzte Kompatibilität haben.
Überwachung Verstöße mit report-uri
:
Während die Entwicklung der Browser -Konsolenprotokollierung verwendet, profitieren Produktionsumgebungen von report-uri
. Dies sendet HTTP -Postanfragen mit Verstößendetails (im JSON -Format) an eine bestimmte URL.
Beispiel:
<code>Content-Security-Policy: default-src 'self';</code>
Ein Verstoß (z. B. das Laden von www.google-analytics.com
) erzeugt einen JSON -Bericht, der an die report-uri
Content-Security-Policy-Report-Only
Header:
Verwenden Sie zum Testen Content-Security-Policy-Report-Only
. Dies meldet Verstöße ohne Blockierung von Ressourcen und ermöglicht die Verfeinerung der Richtlinien ohne Störungen. Beide Header können gleichzeitig verwendet werden.
Implementieren von CSP:
CSP wird über den HTTP -Header eingestellt. Serverkonfiguration (Apache, IIS, Nginx) oder programmatische Methoden (PHPs header()
, node.js setHeader()
) können verwendet werden.
reale Beispiele:
Facebook und Twitter zeigen verschiedene CSP -Implementierungen, die Wildcards und spezifische Domänenzulagen nutzen.
CSP -Stufe 2 Verbesserungen:
CSP Level 2 führt neue Direktiven (base-uri
, child-src
, form-action
, frame-ancestors
, plugin-types
), verbesserte Berichterstattung und Nonce/Hash-basierte Schutz für Inline-Skripte und Stile ein.
nonce-basiertes Schutz:
Ein zufällig erzeugtes Nonce ist sowohl im CSP -Header als auch im Inline -Skript -Tag enthalten.
Hash-basierter Schutz:
Der Server berechnet den Hash des Skript-/Stilblocks, der im CSP -Header enthalten ist. Der Browser überprüft diesen Hash vor der Ausführung.
Schlussfolgerung:
report-uri
CSP erhöht die Websicherheit erheblich, indem die Ressourcen geladen wird.
(Hinweis: Die Bildplatzhalter bleiben wie angefordert unverändert.)
Das obige ist der detaillierte Inhalt vonVerbesserung der Websicherheit mit der Inhaltssicherheitsrichtlinie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
