Aktueller Standort: Startseite> Neueste Artikel> Wie setzen Sie einen sicheren HTTP-Header wie X-Frame-Optionen mithilfe von PHP-Header () -Funktion fest?

Wie setzen Sie einen sicheren HTTP-Header wie X-Frame-Optionen mithilfe von PHP-Header () -Funktion fest?

M66 2025-07-18

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.

1. Verwenden Sie Header () , um X-Frame-Optionen festzulegen

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.

2. Fügen Sie andere sichere HTTP -Header hinzu

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.

3. Richten Sie Header auf der gesamten Website ein

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';
?>

4.. Dinge zu beachten

  • 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.