summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-01-28 15:19:38 +0000
committerthomascube <thomas@roundcube.net>2011-01-28 15:19:38 +0000
commit79e634040d240b9ae2f392fccc3de643035109f9 (patch)
treed26d1165506b217f707849e3d294e8d232997aad /program/steps
parentf6c7afd2d99fc1e61af15d0cbeaa2bc2081beaaf (diff)
Don't block CSS styles having important keywords
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/func.inc4
1 files changed, 2 insertions, 2 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 99f792f79..131a5aa87 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -829,10 +829,10 @@ function rcmail_washtml_callback($tagname, $attrib, $content)
case 'style':
// decode all escaped entities and reduce to ascii strings
- $stripped = preg_replace('/[^a-zA-Z\(:]/', '', rcmail_xss_entity_decode($content));
+ $stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcmail_xss_entity_decode($content));
// now check for evil strings like expression, behavior or url()
- if (!preg_match('/expression|behavior|url\(|import/', $stripped)) {
+ if (!preg_match('/expression|behavior|url\(|import[^a]/', $stripped)) {
$out = html::tag('style', array('type' => 'text/css'), $content);
break;
}