Aktueller Standort: Startseite> Neueste Artikel> Verhindern Sie effektiv Cross-Site-Skriptangriffe (XSS) in PHP-Formen

Verhindern Sie effektiv Cross-Site-Skriptangriffe (XSS) in PHP-Formen

gitbox 2025-07-22

Was ist Cross-Site-Skriptangriff (XSS)?

Cross Site Scripting (XSS) ist eine gemeinsame Sicherheitsanfälligkeit für Netzwerksicherheit. Durch das Einbringen von böswilligen Code in die Webseite wird der Code ausgeführt, wenn der Benutzer auf die Seite zugreift, was zu Leckagen von Benutzerinformationen, böswilliger Operation und sogar der Website -Steuerung führen kann.

Wenn beispielsweise ein Formular keinen Schutz hat, kann ein Angreifer ein bösartiges Skript einfügen, das dem folgenden ähnelt:

 <span class="fun"><script type = "text/javaScript"> alert (&#39;Hallo Welt&#39;); </script></span>

Nachdem der Benutzer das Formular eingereicht hat, wird das Skript in die Seite eingeleitet, und alle Benutzer, die die Seite besuchen, werden betroffen.

Wie verhindern Sie XSS -Angriffe?

Filter und überprüfen Sie die Benutzereingabe

Der erste Schritt zur Verhinderung von XSS besteht darin, alle Benutzereingabedaten effektiv zu filtern und zu überprüfen. Obwohl PHP leistungsstarke Filterfunktionen integriert hat, wird empfohlen, gezielte Überprüfungsfunktionen gemäß den geschäftlichen Bedürfnissen zu schreiben, um die Datensicherheit zu gewährleisten. Sie können beispielsweise eine Funktion definieren, um zu überprüfen, ob die Eingabe nur Buchstaben und Zahlen enthält:

 function isStringValid($str) {
    return preg_match('/^[a-zA-Z0-9]+$/', $str);
}

Darüber hinaus sollten Sonderzeichen, die von Benutzern eingegeben wurden, entkommen, um zu vermeiden, dass sie in ausführbaren Code analysiert werden:

 function escapeOutput($str) {
    return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}

Diese Funktion verwendet HTMLSpecialChars () , um HTML -Tags zu codieren und so die JavaScript -Code -Injektion zu verhindern.

Verbessern Sie die Sicherheit mit CSRF -Token

Die Verwendung von CSRF (Cross-Site Request Forgery) ist ein wirksames Schutzmittel. Der Server generiert einen zufälligen Token, der in einem Cookie gespeichert ist, und legt das Token in das versteckte Formfeld. Bei der Übermittlung des Formulars prüft der Server, ob die beiden Token konsistent sind, stellt sicher, dass die Anfragequelle legal ist und Fälschungsanfragen verhindert.

Die Implementierungsidee besteht darin, zufällige Zeichenfolgen zu generieren, Cookies zu schreiben und versteckte Felder zu formen, zu überprüfen, ob die beiden beim Senden übereinstimmen und nur die Übereinstimmung verarbeitet wird.

Konfigurieren Sie die Sicherheitsrichtlinien ordnungsgemäß

Zusätzlich zur Eingabeüberprüfung sollten andere Sicherheitsmaßnahmen konfiguriert werden:

Die Verwendung der Funktion eval () ist verboten, da sie beliebigen Code ausführt und die Sicherheitsrisiken problemlos erhöht.

Aktivieren Sie die Inhaltssicherheitsrichtlinie (CSP), begrenzen Sie die vom Browser geladenen und ausgeführten Ressourcen und reduzieren Sie die XSS -Angriffsfläche.

Begrenzen Sie den Datei -Upload -Typ und -Regel, um zu vermeiden, dass schädliche Dateien, die den Server über Upload -Kanäle eingeben.

Rational ein Eingangs- und Ausgangscodierung rational behandeln

Vermeiden Sie es bei der Ausgabe von Daten direkt, Benutzereingaben direkt einzufügen, insbesondere Inhalte mit HTML -Tags. Sonderzeichen sollten mithilfe von Codierungsfunktionen entkommen, um die Skriptausführung zu verhindern. Zum Beispiel:

 $string = '<script>alert("XSS");</script>';
echo '<label>' . $string . '</label>';  // Unsicheres Schreiben
echo '<label>' . htmlspecialchars($string) . '</label>';  // Sicheres Schreiben

Zusammenfassen

Cross-Site-Skriptangriffe (XSS) sind eine häufige und gefährliche Anfälligkeit in der Websicherheit. Durch strikte Überprüfung und Filterung der Benutzereingabe, mithilfe von CSRF -Token, der vernünftigen Konfiguration von Sicherheitsrichtlinien und der Standardisierung der Ausgangscodierung können Entwickler das Risiko von XSS -Angriffen effektiv verringern. Nur durch kontinuierliche Beachtung der Sicherheitsdynamik und die Aktualisierung von Schutzmaßnahmen können wir die Privatsphäre der Benutzer und die Sicherheit der Website besser schützen.