diff options
author | Andy Staudacher <andy.st@gmail.com> | 2009-09-04 10:11:42 -0700 |
---|---|---|
committer | Andy Staudacher <andy.st@gmail.com> | 2009-09-04 10:11:42 -0700 |
commit | c453c0ef8239bc79e484dd3feb9e275e942e9d48 (patch) | |
tree | 1c2253016c217462df2cb87fc74fcfff497bac7a /modules/gallery/libraries/SafeString.php | |
parent | 1ffb5b24dff439b4a3e9e7f2df3af1a0f8e9e5a0 (diff) |
Simplifying SafeString a bit: From a XSS HTML security point of view, treat clean() and purify() the same.
No longer run a safe HTML string through the HTML purifier (since it's already marked as safe).
This also addresses the issue of calling purify() when no purifier is installed. In that case, we'd run clean() on a clean string (double HTML encoding).
If this approach doesn't work out, we can still modify the fallback code of purify() to check if the string is already clean before calling clean() instead of purify().
Diffstat (limited to 'modules/gallery/libraries/SafeString.php')
-rw-r--r-- | modules/gallery/libraries/SafeString.php | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/modules/gallery/libraries/SafeString.php b/modules/gallery/libraries/SafeString.php index 3328fed5..ba3a8ffd 100644 --- a/modules/gallery/libraries/SafeString.php +++ b/modules/gallery/libraries/SafeString.php @@ -24,13 +24,11 @@ class SafeString_Core { private $_raw_string; protected $_is_safe_html = false; - protected $_is_purified_html = false; /** Constructor */ function __construct($string) { if ($string instanceof SafeString) { $this->_is_safe_html = $string->_is_safe_html; - $this->_is_purified_html = $string->_is_purified_html; $string = $string->unescaped(); } $this->_raw_string = (string) $string; @@ -49,14 +47,13 @@ class SafeString_Core { */ static function purify($string) { if ($string instanceof SafeString) { - if ($string->_is_purified_html) { + if ($string->_is_safe_html) { return $string; } else { $string = $string->unescaped(); } } $safe_string = self::of_safe_html(self::_purify_for_html($string)); - $safe_string->_is_purified_html = true; return $safe_string; } @@ -135,11 +132,7 @@ class SafeString_Core { * @return the string escaped for use in HTML. */ function purified_html() { - if ($this->_is_purified_html) { - return $this; - } else { - return self::purify($this); - } + return self::purify($this); } /** |