In der Webentwicklung ist XSS (Cross-Site-Skriptangriff) eine häufige und gefährliche Sicherheitsanfälligkeit. Durch das Injizieren böswilliger Skriptcode können Benutzer beim Durchsuchen der Webseite den vom Angreifer entworfenen Code ausführen, wodurch sensible Informationen stehlen, Sitzungen oder Manipulationen mit Seiteninhalten manipuliert werden. Um XSS -Angriffe zu verhindern, müssen Entwickler streng filtern und den Benutzereingang oder dynamischen Inhalten entkommen.
In diesem Artikel wird vorgestellt, wie die Funktion mb_eregi_replace () in PHP in Kombination mit der Funktion HTMLSpecialChars () verwendet wird, um einen sicheren Austausch und die Ausgabe der Benutzereingabe zu erreichen, den Zweck des Schutzes von XSS -Angriffen zu erreichen und vor dem Ersatzbetrieb eine sichere Handhabung durchzuführen.
XSS -Angriffe treten hauptsächlich auf der Browserseite auf. Der Angreifer einbettet böswillige Skripte in die Seite ein, was zu einem Angriff führt, nachdem der Browser ausgeführt wird. Der Schlüssel zum Schutz liegt in der Filterung und Entgnung des Benutzereingangsinhalts.
Filter : Entfernen oder ersetzen Sie gefährliche Tags, Eigenschaften und Skripte.
Escape : Flucht spezielle HTML -Zeichen in Entitäten, um zu verhindern, dass Browser sie als Code ausführen.
Die htmlspecialChars () -Funktion von PHP ist eine häufige Methode zur Verhinderung von XSS. Es konvertiert Zeichen wie <> "'und in entsprechende HTML -Entitäten, so dass der Browser es im Klartext anstelle, anstatt Code auszuführen.
mb_eregi_replace () ist eine sichere reguläre Ersatzfunktion für Multi-Byte-Zeichenfolgen in PHP. Es unterstützt die regelmäßige Übereinstimmung mit der Fall nichtempfindlich und eignet sich für die Verarbeitung von Zeichenfolgen, die Multi-Byte-Zeichen wie Chinesen enthalten.
Grammatik:
mb_eregi_replace($pattern, $replacement, $string);
Es kann verwendet werden, um sensible Wörter oder gefährliche Inhalte in Saiten anzupassen und zu ersetzen, und ist ein leistungsstarkes Werkzeug für die Inhaltsfilterung.
Verwenden Sie zuerst HTMLSpecialChars (), um der Eingangszeichenfolge <br> zu entkommen Dies verhindert, dass bösartige HTML- oder JS -Code direkt vom Browser ausgeführt wird.
Verwenden Sie dann mb_eregi_replace (), um empfindliche Wörter oder gefährliche Tags zu filtern oder zu ersetzen. <br> Ersetzen Sie beispielsweise das <script> -Tag durch einen sicheren Text, um Restangriffskripte zu vermeiden.
Ausgabe des Inhalts nach einer sicheren Verarbeitung, um eine Injektion zu verhindern.
<?php
// Benutzereingabeinhalt,Kann böswillige Skripte enthalten
$input = '<script>alert("XSSAngriff")</script><b>Normaler Text</b>';
// Erster Schritt:Zuerst entkommenHTMLSonderzeichen,Verhindern, dass der Browser Skripte ausführt
$safe_input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
// Schritt 2:Ersetzen Sie sensible Wörter oder Tags,Hier<script>Als Beispiel,Ersetzen durch“[Verbotene Tags]”
$pattern = '<script.*?>.*?</script>';
$replacement = '[Verbotene Tags]';
// verwendenmb_eregi_replaceErsetzen Sie sensible Tags,Fall ignorieren
$filtered_input = mb_eregi_replace($pattern, $replacement, $safe_input);
// Den verarbeiteten Inhalt ausgeben
echo $filtered_input;
?>
htmlSpecialChars () entgeht Symbolen wie < , > in Entitäten, um die Skriptausführung zu verhindern.
MB_Eregi_Replace () wird verwendet, um das <Skript> -Tag zu übereinstimmen, den Fall zu ignorieren und durch einen Eingabeaufforderungstext zu ersetzen.
Auf diese Weise kann auch wenn die Eingabe komplexe Mischmischungen von Fall enthält, sicher gefiltert werden.
Regelmäßige Ausdrücke während des Austauschs sollten streng genug sein, um die Umgehung zu verhindern.
Die Filterung ist nicht allmächtig und die Kombination von Richtlinien für die Whitelisting -Richtlinien und Richtlinien für die Inhaltssicherheit (CSP).
Die Ausgabe verschiedener Umgebungen (HTML, JavaScript, URL usw.) muss entsprechende Sicherheitskräfte durchgeführt werden.
mb_eregi_replace () ist für Multi-Byte-Umgebungen geeignet und vermeidet verstopfte Code.
Wenn zuerst die Benutzereingabe mit HTMLSpecialChars () entgeht und dann mögliche böswillige Skript -Tags durch MB_Eregi_Replace () -Funktion () ersetzt wird, kann die XSS -Schutzfähigkeit von PHP -Anwendungen effektiv verbessert werden. In tatsächlichen Projekten kann eine solche Mehrschicht-Sicherheitsverarbeitung die Sicherheitsrisiken erheblich reduzieren und Benutzerdaten und Systemsicherheit schützen.
Ein Beispiel -URL -Domänenname, der am Beispielcode beteiligt ist:
$url = "https://m66.net/path/to/resource";
echo "<a href=\"$url\">Sichere Links</a>";