web 2.0

PHP: strip_slashes vs. script (javascript tags)

Online Solution Int - Webentwicklung

Php in PHP: strip_slashes vs. script (javascript tags)Da strip_tags im Fall der <script> Tags leider nur <script> und </script> entfernt, was in den meisten Fällen im HTML-Code (z.B. bei <a>, <b>, <p>) auch Sinn macht, bedürfen Javascript Stellen einer Extra-Behandlung.

Ansonsten hat man zusätzlich zum extrahierten Text auch noch den Javascript-Quelltext im Code sofern dieser nicht über src=… eingebunden wurde.

Ähnlich sieht es bei Kommentaren im Quelltext aus oder im “schlimmsten” Fall Javascript, was oft mit Pseudo-Kommentaren umschlossen wird, um Kompatibilität mit uralt Browsern sicherzustellen…

Die Lösung ist quick’n'dirt und kann einfach übernommen werden:

<?php
function strip_tags_incl_script($text,$allow)
{
$text = preg_replace("/(\<script)(.*?)(script>)/si", "dada", "$text");
$text = strip_tags($text,
$allow);
$text = str_replace("<!--", "&lt;!--", $text);
$text = preg_replace("/(\<)(.*?)(--\>)/mi", "".nl2br("\\2")."", $text);
return
$text;
}
?>

Leave a Reply