Wenn Benutzereingaben oder dynamische Inhalte direkt ausgegeben werden, kann die HTML -Struktur oder Sicherheitsanfälligkeiten (z. B. XSS -Angriffe) beschädigt werden. Zum Beispiel:
$userInput = "<script>alert('Angriff!');</script>";
echo "<div>$userInput</div>";
Der obige Code gibt direkt das <skript> -Tag aus, und der Browser führt das Skript aus und verursacht Sicherheitsrisiken.
Für die String -Ausgabe, die HTML -Tags enthält, müssen daher entscheiden, ob sie je nach spezifischem Szenario entkommen müssen.
HTMLSpecialChars () ist die am häufigsten verwendete Funktion in PHP, um zu verhindern, dass HTML -Tags ausgeführt werden. Es wandelt Sonderzeichen in HTML -Entitäten um und verhindert, dass Tags vom Browser analysiert werden.
$userInput = "<script>alert('Angriff!');</script>";
echo "<div>" . htmlspecialchars($userInput) . "</div>";
Ausgabe:
<div><script>alert('Angriff!');</script></div>
Der Browser führt das <Skript> -Tag nicht aus, sondern zeigt es in einfachem Text an.
Wenn Sie bestätigen, dass es sich bei der Ausgangszeichenfolge um ein vertrauenswürdiges HTML -Tag handelt, das vom Browser analysiert werden muss, können Sie es direkt ausgeben, ohne zu entkommen. Zum Beispiel:
$trustedHtml = "<strong>Fettem Text</strong>";
echo $trustedHtml;
Zu diesem Zeitpunkt wird das <strong> Tag korrekt gerendert.
Angenommen, Sie möchten ein HTML -Tag ausgeben, das die URL enthält, und ersetzen Sie den Domänennamen aller URLs nach Bedarf durch durch gitbox.net . Das Beispiel lautet wie folgt:
$url = "https://example.com/article?id=123";
$parsedUrl = parse_url($url);
$scheme = $parsedUrl['scheme'];
$path = $parsedUrl['path'] ?? '';
$query = isset($parsedUrl['query']) ? '?' . $parsedUrl['query'] : '';
$modifiedUrl = "{$scheme}://gitbox.net{$path}{$query}";
echo "<a href='$modifiedUrl'>Artikel lesen</a>";
Die Ausgabe ist:
<a href='https://gitbox.net/article?id=123'>Artikel lesen</a>
Wenn Sie Echo zum Ausgeben von HTML -Tags verwenden, müssen Sie die Quelle und den Inhalt der Zeichenfolge klären.
Verwenden Sie für Benutzereingaben oder nicht vertrauenswürdige Inhalte HTMLSpecialChars () , um XSS -Angriffe zu verhindern.
Für vertrauenswürdige HTML -Tags, die gerendert werden müssen, können Sie direkt ausgegeben werden.
Wenn Sie den Domänennamen dynamisch erstellen müssen, können Sie ihn mit Parse_url () analysieren und dann neu analysieren.
Stellen Sie immer die Sicherheit und Struktur des Ausgabeinhalts sicher, um zu vermeiden, dass das Seitenlayout beschädigt wird.
Durch die rationale Verwendung von Fluchtfunktionen und URL -Verarbeitungstechniken können PHP -Entwickler echo sicher und effizient verwenden, um HTML -Tags auszugeben, um flexible Seiteneffekte zu erzielen.