From ede25aabce2e25ce8134157853ff4c7f45e2f784 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 16 Nov 2011 14:23:06 -0800 Subject: check all attribute names for validity --- library/HTML5/TreeBuilder.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'library') diff --git a/library/HTML5/TreeBuilder.php b/library/HTML5/TreeBuilder.php index 10d446d1e..578e73682 100644 --- a/library/HTML5/TreeBuilder.php +++ b/library/HTML5/TreeBuilder.php @@ -3041,9 +3041,13 @@ class HTML5_TreeBuilder { if (!empty($token['attr'])) { foreach($token['attr'] as $attr) { - // mike@macgirvin.com 2011-10-21, stray double quotes and/or numeric tags cause everything to abort - $attr['name'] = str_replace('"','',$attr['name']); - if($attr['name'] && (!$el->hasAttribute($attr['name'])) && (! is_numeric($attr['name']))) { + + // mike@macgirvin.com 2011-11-17, check attribute name for + // validity (ignoring extenders and combiners) as illegal chars in names + // causes everything to abort + + $valid = preg_match('/^[a-zA-Z\_\:]([\-a-zA-Z0-9\_\:\.]+$)/',$attr['name'],$matches); + if($attr['name'] && (!$el->hasAttribute($attr['name'])) && ($valid)) { $el->setAttribute($attr['name'], $attr['value']); } } -- cgit v1.2.3