Lieber Julius,
Allerdings liest Frickl dummerweise
script
-Elemente aus, auch wenn sie sich – wie im Beispiel – in einem Attributwert befinden:
das liegt daran, dass das dahinterliegende PHP-Script mit einem relativ simplen preg_match_all operiert, anstatt einen kompletten HTML-Parser zu bemühen:
// JavaScript: <script>
if (preg_match_all(
'~(?is)<script[^>]*>(.*?)</script>~',
$text,
$test
)) {
foreach ($test[1] as $js) {
$data['javascript'] .= $js;
}
}
Gibt es dafür eine Lösung (
script
-Elemente nicht parsen, falls sie sich innerhalb eines Attribut-Werts befinden?).
Prinzipiell schon: Einen HTML-Parser bemühen.
Ich habe vorerst < und sicherheitshalber auch > escaped,
Sehr gut. Das ist momentan die sicherste Lösung.
aber eine allgemeine Lösung wäre natürlich – sofern realisierbar – vorzuziehen:
Welchen Parser empfiehlst Du, dass ich ihn in einer Extension für eine veraltete MediaWiki-Version einsetze? Aktuell habe ich etwas Erfahrung mit masterminds/html5, was mir aber gehörig überdimensioniert erscheint. Geht es nicht etwas einfacher?
Liebe Grüße,
Felix Riesterer.