note 106819 added to function.strip-tags
| From: | info at malagadev dot com | Date: | Fri, 09 Dec 2011 00:41:21 +0000 |
| Subject: | note 106819 added to function.strip-tags | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-184988@lists.php.net to get a copy of this message | ||
The function strip_javascript that was developed by nathan@8 in this comments at 08-Mar-2009 06:55
has an error that leads into wrong replacements. Below is the corrected function:
function strip_javascript($filter){
// realign javascript href to onclick
$filter = preg_replace("/href=(['\"]).*?javascript:(.*)?\\1/i",
"onclick=' $2 '", $filter);
//remove javascript from tags
while(
preg_match("/\<(.*)?javascript.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i",
$filter))
$filter =
preg_replace("/\<(.*)?javascript.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i",
"<$1$3$4$5>", $filter);
// dump expressions from contibuted content
if(0) $filter =
preg_replace("/:expression\(.*?((?\>[^(.*?)]+)|(?R)).*?\)\)/i", "", $filter);
while(
preg_match("/\<(.*)?:expr.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i", $filter))
$filter =
preg_replace("/\<(.*)?:expr.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i",
"<$1$3$4$5>", $filter);
// remove all on* events
while(
preg_match("/\<(.*)?\s+on.+?=?\s?.+?(['\"]).*?\\2\s?(.*)?\>/i",
$filter,$rr) ) {
$filter =
preg_replace("/\<(.*)?\s+on.+?=?\s?.+?(['\"]).*?\\2\s?(.*)?\>/i",
"<$1$3>", $filter);
}
return $filter;
}
----
Server IP: 69.147.83.197
Probable Submitter: 88.31.194.224
----
Manual Page -- http://www.php.net/manual/en/function.strip-tags.php
Edit -- https://master.php.net/note/edit/106819
Del: integrated -- https://master.php.net/note/delete/106819/integrated
Del: useless -- https://master.php.net/note/delete/106819/useless
Del: bad code -- https://master.php.net/note/delete/106819/bad+code
Del: spam -- https://master.php.net/note/delete/106819/spam
Del: non-english -- https://master.php.net/note/delete/106819/non-english
Del: in docs -- https://master.php.net/note/delete/106819/in+docs
Del: other reasons-- https://master.php.net/note/delete/106819
Reject -- https://master.php.net/note/reject/106819
Search -- https://master.php.net/manage/user-notes.php