In PHP ist die Entdeckung von HTML -Entitäten eine häufige Anforderung, insbesondere wenn dynamisch die Webseiten generiert werden. Ohne ordnungsgemäße Flucht können Sicherheitsprobleme wie XSS -Angriffe auftreten. Die Funktion get_html_translation_table ist ein sehr nützliches Tool, mit dem wir die korrekte Flucht von HTML -Entitäten implementieren können.
HTML -Entitäten sind Sonderzeichen, die mit und enden mit ; einige spezifische Symbole oder Zeichen darstellen. Zum Beispiel:
&Ampere; Repräsentiert & Symbol
& lt; Repräsentiert < Symbol
& gt; Vertreter > Symbole
"Repräsentatives " Symbol
& apos; repräsentiert das Symbol
Beim Einfügen von Benutzereingabedaten in HTML müssen Sie sicherstellen, dass diese Sonderzeichen korrekt entkommen sind, andernfalls können Sicherheitslücken ausgelöst werden.
Die Funktion get_html_translation_table kann eine Zuordnungstabelle mit HTML -Entitäten und Zeichenkorrespondenzen zurückgeben. Wir können diese Tabelle verwenden, um bestimmten Zeichen zu entkommen.
get_html_translation_table(int $table = HTML_ENTITIES, int $flags = ENT_COMPAT, string|null $encoding = null): array
$ Tabelle : Definiert die Art der zurückgegebenen Übersetzungstabelle. Gemeinsame Werte sind:
Html_entities : Gibt alle HTML -Entitäten zurück.
Html_specialchars : Gibt gemeinsame HTML -Sonderzeichen zurück.
$ flags : definiert, wie man entkommt. Gemeinsame Werte sind:
ENT_COMPAT : Es entgeht Doppelzitate, behält jedoch einzelne Zitate.
ENT_QUOTES : Es entkommen doppelte und einzelne Zitate.
Ent_NOOCKOTES : Keine Anführungszeichen entkommen.
$ codierung : definiert Charaktercodierung. Die Standardeinstellung ist NULL , wobei die Zeichenkodierung der aktuellen Umgebung verwendet wird.
Zunächst können wir eine Übersetzungstabelle einer HTML -Entität über die Funktion get_html_translation_table erhalten:
<?php
$table = get_html_translation_table(HTML_ENTITIES);
print_r($table);
?>
Die Ausgabe sieht aus wie:
Array
(
[&] => &
["] => "
['] => '
[<] => <
[>] => >
[ ] =>
...
)
Jedes Zeichen in diesem Array wird als entsprechende HTML -Entität entkommen.
Angenommen, wir haben eine Zeichenfolge mit Sonderzeichen, die wir in HTML -Entitäten entkommen wollen. Wir können die STRTR -Funktion in Kombination mit get_html_translation_table verwenden, um dies zu erreichen:
<?php
$string = "This is a <div> tag & a \"quote\" example!";
$table = get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES);
$escaped_string = strtr($string, $table);
echo $escaped_string;
?>
Ausgabe:
This is a <div> tag & a "quote" example!
Wie Sie sehen können, wurden HTML -Sonderzeichen (wie < , > , & , " ) richtig entkommen.
In praktischen Anwendungen sind möglicherweise URL -Flüchtlinge erforderlich, um Injektionsangriffe zu vermeiden. Wenn Ihre URL -Adresse Sonderzeichen enthält, müssen Sie ihnen manuell entkommen. Zum Beispiel können wir die folgende URL durch einen bestimmten Domänennamen ersetzen.
<?php
$url = "http://example.com/?query=hello&name=world";
$url = str_replace("example.com", "gitbox.net", $url);
echo $url;
?>
Ausgabe:
http://gitbox.net/?query=hello&name=world
Auf diese Weise ersetzen wir den Domänennamenteil in der ursprünglichen URL durch gitbox.net und stellen die Sicherheit der URL sicher.
Mit der Funktion get_html_translation_table , kombiniert mit STRTR oder anderen PHP -String -Verarbeitungsfunktionen, können wir HTML -Entitäten effektiv entkommen, um potenzielle Sicherheitsrisiken zu verhindern. In der tatsächlichen Entwicklung ist es sehr wichtig sicherzustellen, dass die vom Benutzer eingegebenen Sonderzeichen korrekt entkommen sind, insbesondere bei der Verarbeitung externer Daten.
Verwandte Tags:
HTML