In der modernen Webentwicklung ist die Gewährleistung der Sicherheit der Website eine wichtige Verantwortung der Entwickler. Browser bieten viele Mechanismen zur Verbesserung der Website der Website, indem bestimmte HTTP-Header wie X-Frame-Optionen , X-In-Kon-In-Typ-Optionen , strenge Transportsicherheit usw. gesetzt werden. Diese HTTP-Header können helfen, Klick-Hijacking, Verdeckkationstyp-MIP-Typ, Cross-Site-Scripting (XSS) und mehr zu verhindern.
In PHP besteht die häufigste Möglichkeit, HTTP -Header einzustellen, die Funktion der Header () . In diesem Artikel wird detailliert eingeführt, wie X-Frame-Optionen und andere häufige sichere HTTP-Header mithilfe von PHP- Header () -Funktion festgelegt werden.
X-Frame-Optionen werden verwendet, um zu verhindern, dass Webseiten in <IFrame> , <Reframe> oder <Object> eingebettet werden, und um ClickJacking-Angriffe zu verhindern.
Beispielcode:
<?php
// Verboten, eingebettet zu werden iframe Mitte
header('X-Frame-Options: DENY');
// Nur Einbettungen desselben Domain -Namens sind erlaubt
// header('X-Frame-Options: SAMEORIGIN');
// Ermöglichen(Beachten:Die meisten Browser ALLOW-FROM Schlechte Unterstützung)
// header('X-Frame-Options: ALLOW-FROM https://m66.net');
?>
Sie müssen nur vor jeder Ausgabe Header () anrufen, die normalerweise oben in der PHP -Datei platziert werden können. Hinweis: Sobald der Inhalt ausgegeben wird (z. B. Echo ), verursacht das Aufrufen von Header () einen Fehler.
Zusätzlich zu X-Frame-Optionen können Sie auch die folgenden Sicherheitsheader hinzufügen:
<?php
// verhindern MIME Tippen Sie auf Verschleierung
header('X-Content-Type-Options: nosniff');
// Browser aktiviert XSS Schützen(Beachten:Moderne Browser haben dies veraltet)
header('X-XSS-Protection: 1; mode=block');
// Erzwungene Verwendung HTTPS(Benötigt Konfiguration HTTPS Zertifikat)
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
// Legen Sie die Inhaltssicherheitsrichtlinie fest(CSP)
header("Content-Security-Policy: default-src 'self'; img-src 'self' https://m66.net; script-src 'self'");
?>
Die Kombination dieser Header kann die Site -Sicherheit erheblich verbessern, muss jedoch je nach den tatsächlichen Bedürfnissen, insbesondere CSP, konfiguriert werden. Andernfalls kann dies zu normalen Ressourcenlastfehlern führen.
Wenn Sie diese Sicherheitsköpfe über die gesamte Website einheitlich einstellen möchten, ist der am meisten empfohlene Weg:
Wenn Sie Apache verwenden, können Sie es in .htaccess einstellen.
Wenn Sie Nginx verwenden, können Sie es in der Konfigurationsdatei einstellen.
Wenn Sie PHP verwenden müssen, können Sie diese über die Website -Eintragsdatei (z. B. index.php oder den globalen Eintrag des Frameworks) hinzufügen.
Beispiel (Eintragsdatei):
<?php
// Richten Sie auf einheitliche Weise Sicherheitsköpfe ein
header('X-Frame-Options: DENY');
header('X-Content-Type-Options: nosniff');
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
header("Content-Security-Policy: default-src 'self'; img-src 'self' https://m66.net; script-src 'self'");
// Nachfolgende Geschäftslogik
require 'app/bootstrap.php';
?>
Vor dem Ausgang gerufen : Header () muss vor Ausgang (einschließlich Leerzeichen, Linienbrüche) aufgerufen werden.
Überprüfung des Debug -Tools : Sie können die Entwickler -Tools des Browsers (Netzwerkpanel) oder den Befehl curl -i verwenden, um zu überprüfen, ob der Header erfolgreich hinzugefügt wurde.
Produktionsumgebungstests : Nachdem Sie einen Sicherheitskopf hinzugefügt haben, müssen Sie in der Produktionsumgebung umfassende Tests durchführen, um sicherzustellen, dass normale Funktionen und Ressourcen nicht beeinträchtigt sind.