ClickJacking ist eine böswillige Technologie, die auf der Webseite, die vom Angreifer gesteuert wird, unabsichtlich auf bestimmte Inhalte klickt, indem Sie Webseiten in transparente Iframes einbetten. Um diesen Angriff zu verhindern, können wir verhindern, dass die Seite durch HTTP -Header -Informationen in den IFRame verschachtelt wird.
In PHP können wir die Funktion Header () verwenden, um den entsprechenden HTTP -Antwortheader einzustellen, um die Verteidigung zu erreichen.
Das Prinzip des Clickjacking -Angriffs besteht darin, Benutzer dazu zu bringen, auf Schnittstellenelemente zu klicken, die sie nicht sehen können, und es den Benutzern ermöglichen, Aktionen ohne ihr Wissen auszuführen. Normalerweise verwendet ein Angreifer ein Iframe, um die Seite der Zielwebsite auf seiner eigenen Webseite zu verschieben und den Seiteninhalt über Transparenz oder andere Mittel zu vertuschen, damit die Benutzer tatsächlich die gewünschten Aktionen ausführen, wenn sie scheinbar harmlose Inhalte betreiben.
Der beste Weg, um zu verhindern, dass Seiten in IFRames verschachtelt werden, besteht darin, den Reaktionsübergang von X-Frame-Options zu verwenden. Dieser Kopfzeile teilt dem Browser mit, ob die aktuelle Seite in einem Iframe verschachtelt werden darf. Mit dieser Methode kann es effektiv Klick -Jacking -Angriffe verhindern.
In PHP können Sie HTTP -Antwortheader über die Header () -Funktion senden. Um zu verhindern, dass die Seite in einen Iframe verschachtelt wird, können Sie den folgenden Code verwenden:
<?php
// aufstellen X-Frame-Options Verhindern, dass Seiten verschachtelt werden iframe Mitte
header('X-Frame-Options: DENY');
// Oder wenn Sie nur verschachtelte Seiten unter dem angegebenen Domänennamen zulassen möchten,Verfügbar:
header('X-Frame-Options: ALLOW-FROM https://m66.net');
// Verarbeiten Sie weiterhin andere Inhalte auf der Seite
?>
Deny : Jede Webseite ist verboten, die aktuelle Seite über einen Iframe zu laden.
SameOrigin : Nur Seiten mit derselben Quelle (d. H. Der gleiche Domänenname) dürfen die aktuelle Seite über einen Iframe laden.
FROM URI ARI : Ermöglicht dem angegebenen Domänennamen die aktuelle Seite über einen Iframe. Beachten Sie, dass in einigen Browsern wie Firefox die Option zulässigen Option veraltet ist. Daher wird dies im Allgemeinen empfohlen.
Hier ist ein praktisches Beispiel, das zeigt, wie der Header X-Frame-Options in einer PHP-Seite festgelegt wird, um zu verhindern, dass andere Websites die aktuelle Seite in einen IFRame einbinden:
<?php
// verhindern Clickjacking Angriff
header('X-Frame-Options: DENY');
// aufstellen其他 HTTP Antwortkopf
header('Content-Type: text/html; charset=UTF-8');
// Seiteninhalt
echo "<h1>Dies ist eine sichere Seite</h1>";
echo "<p>Diese Seite kann nicht verschachtelt werden iframe Mitte。</p>";
?>
Während X-Frame-Optionen ein effektiver Weg sind, um Clickjacking-Angriffe zu verhindern, ist dies nicht die einzige Verteidigung. Sie können auch die Inhaltssicherheitsrichtlinie (CSP) verwenden, um den Schutz weiter zu stärken. Wenn Sie beispielsweise den CSP -Header festlegen, verbietet es ausdrücklich, dass Seiten in einem Iframe verschachtelt werden:
<?php
// verwenden CSP Verschärfung verbieten
header("Content-Security-Policy: frame-ancestors 'none';");
// Seiteninhalt
echo "<h1>Dies ist eine sichere Seite</h1>";
?>
Durch das Einstellen von Frame-Anschlüssen auf 'keine' können Sie Seiten vollständig in einem Iframe deaktivieren, was flexibler ist als X-Frame-Optionen .
Dies kann effektiv verhindern, dass Ihre Seite in einem Iframe verschachtelt ist und ClickJacking -Angriffe vermeiden. Abhängig von Ihren Anforderungen können Sie die X-Frame-Optionen oder die Inhaltssicherheitsrichtlinie (CSP) verwenden, um Verteidigung zu erreichen.