Ich habe ein PHP-Skript, das Benutzereingaben verarbeitet. Ich muss allen Sonderzeichen entkommen, aber auch klickbare Links machen (verwandle sie in <a>
Elemente). Was ich brauche, ist:htmlspecialchars und make links clickable
function specialCharsAndLinks($text) {
// magic goes here
}
$inp = "http://web.page/index.php?a1=hi&a2=hello\n<script src=\"http://bad-website.com/exploit.js\"></script>";
$out = specialCharsAndLinks($inp);
echo $out;
Der Ausgang sein sollte (in HTML):
<a href="http://web.page/index.php?a1=hi&a2=hello">http://web.page/index.php?a1=hi&a2=hello</a>
<script src="http://bad-website.com/exploit.js"></script>
Beachten Sie, dass die amperstand in dem Link in dem href
Attribute bleibt, ist aber auf &
in dem eigentlichen Inhalt umgewandelt der Verbindung.
Wenn in einem Browser angezeigt:
http://web.page/index.php?a1=hi&a2=hello < script src = "http://bad-website.com/exploit.js" > </script >
Mein Beispiel funktioniert perfekt. Der Link in der gerenderten Ausgabe ist ein "" -Tag. – randomdude999
Willst du sagen, dass du nur 'Hallo' siehst? (processed tag) – Borna
Ok, also warum nicht einfach den Inhalt dekodieren? Inhalt htmlspecialchars_decode() – Borna