aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-08-15 15:17:57 +0000
committerben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-08-15 15:17:57 +0000
commitfe37a38096d79385829221f35a7b3082129cb468 (patch)
tree9753eb3b965ebe7c2fe1714fa68363d665eef214 /engine
parent3c01acacc0e8a4794f2b925bda80632334fb3ab4 (diff)
downloadelgg-fe37a38096d79385829221f35a7b3082129cb468.tar.gz
elgg-fe37a38096d79385829221f35a7b3082129cb468.tar.bz2
Improved the kses whitelist
git-svn-id: https://code.elgg.org/elgg/trunk@1941 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/input.php247
1 files changed, 245 insertions, 2 deletions
diff --git a/engine/lib/input.php b/engine/lib/input.php
index 700b3e7f1..187242f8e 100644
--- a/engine/lib/input.php
+++ b/engine/lib/input.php
@@ -33,7 +33,7 @@
{
global $CONFIG;
if (@include_once(dirname(dirname(dirname(__FILE__)))) . "/vendors/kses/kses.php") {
- $var = kses($var, $CONFIG->allowedtags);
+ $var = kses($var, $CONFIG->allowedtags, $CONFIG->allowedprotocols);
}
}
@@ -124,7 +124,250 @@
function input_init() {
global $CONFIG;
- $CONFIG->allowedtags = array ('address' => array (), 'a' => array ('href' => array (), 'title' => array (), 'rel' => array (), 'rev' => array (), 'name' => array ()), 'abbr' => array ('title' => array ()), 'acronym' => array ('title' => array ()), 'b' => array (), 'big' => array (), 'blockquote' => array ('cite' => array ()), 'br' => array (), 'button' => array ('disabled' => array (), 'name' => array (), 'type' => array (), 'value' => array ()), 'caption' => array ('align' => array ()), 'code' => array (), 'col' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'span' => array (), 'valign' => array (), 'width' => array ()), 'del' => array ('datetime' => array ()), 'dd' => array (), 'div' => array ('align' => array ()), 'dl' => array (), 'dt' => array (), 'em' => array (), 'fieldset' => array (), 'font' => array ('color' => array (), 'face' => array (), 'size' => array ()), 'form' => array ('action' => array (), 'accept' => array (), 'accept-charset' => array (), 'enctype' => array (), 'method' => array (), 'name' => array (), 'target' => array ()), 'h1' => array ('align' => array ()), 'h2' => array ('align' => array ()), 'h3' => array ('align' => array ()), 'h4' => array ('align' => array ()), 'h5' => array ('align' => array ()), 'h6' => array ('align' => array ()), 'hr' => array ('align' => array (), 'noshade' => array (), 'size' => array (), 'width' => array ()), 'i' => array (), 'img' => array ('alt' => array (), 'align' => array (), 'border' => array (), 'height' => array (), 'hspace' => array (), 'longdesc' => array (), 'vspace' => array (), 'src' => array (), 'width' => array ()), 'ins' => array ('datetime' => array (), 'cite' => array ()), 'kbd' => array (), 'label' => array ('for' => array ()), 'legend' => array ('align' => array ()), 'li' => array (), 'p' => array ('align' => array ()), 'pre' => array ('width' => array ()), 'q' => array ('cite' => array ()), 's' => array (), 'strike' => array (), 'strong' => array (), 'sub' => array (), 'sup' => array (), 'table' => array ('align' => array (), 'bgcolor' => array (), 'border' => array (), 'cellpadding' => array (), 'cellspacing' => array (), 'rules' => array (), 'summary' => array (), 'width' => array ()), 'tbody' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()), 'td' => array ('abbr' => array (), 'align' => array (), 'axis' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'colspan' => array (), 'headers' => array (), 'height' => array (), 'nowrap' => array (), 'rowspan' => array (), 'scope' => array (), 'valign' => array (), 'width' => array ()), 'textarea' => array ('cols' => array (), 'rows' => array (), 'disabled' => array (), 'name' => array (), 'readonly' => array ()), 'tfoot' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()), 'th' => array ('abbr' => array (), 'align' => array (), 'axis' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'colspan' => array (), 'headers' => array (), 'height' => array (), 'nowrap' => array (), 'rowspan' => array (), 'scope' => array (), 'valign' => array (), 'width' => array ()), 'thead' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()), 'title' => array (), 'tr' => array ('align' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()), 'tt' => array (), 'u' => array (), 'ul' => array (), 'ol' => array (), 'var' => array () );
+ $CONFIG->allowedtags = array(
+ 'address' => array(),
+ 'a' => array(
+ 'class' => array (),
+ 'href' => array (),
+ 'id' => array (),
+ 'title' => array (),
+ 'rel' => array (),
+ 'rev' => array (),
+ 'name' => array (),
+ 'target' => array()),
+ 'abbr' => array(
+ 'class' => array (),
+ 'title' => array ()),
+ 'acronym' => array(
+ 'title' => array ()),
+ 'b' => array(),
+ 'big' => array(),
+ 'blockquote' => array(
+ 'id' => array (),
+ 'cite' => array (),
+ 'class' => array(),
+ 'lang' => array(),
+ 'xml:lang' => array()),
+ 'br' => array (
+ 'class' => array ()),
+ 'button' => array(
+ 'disabled' => array (),
+ 'name' => array (),
+ 'type' => array (),
+ 'value' => array ()),
+ 'caption' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'cite' => array (
+ 'class' => array(),
+ 'dir' => array(),
+ 'lang' => array(),
+ 'title' => array ()),
+ 'code' => array (
+ 'style' => array()),
+ 'col' => array(
+ 'align' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'span' => array (),
+ 'dir' => array(),
+ 'style' => array (),
+ 'valign' => array (),
+ 'width' => array ()),
+ 'del' => array(
+ 'datetime' => array ()),
+ 'dd' => array(),
+ 'div' => array(
+ 'align' => array (),
+ 'class' => array (),
+ 'dir' => array (),
+ 'lang' => array(),
+ 'style' => array (),
+ 'xml:lang' => array()),
+ 'dl' => array(),
+ 'dt' => array(),
+ 'em' => array(),
+ 'fieldset' => array(),
+ 'font' => array(
+ 'color' => array (),
+ 'face' => array (),
+ 'size' => array ()),
+ 'form' => array(
+ 'action' => array (),
+ 'accept' => array (),
+ 'accept-charset' => array (),
+ 'enctype' => array (),
+ 'method' => array (),
+ 'name' => array (),
+ 'target' => array ()),
+ 'h1' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'h2' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'h3' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'h4' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'h5' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'h6' => array(
+ 'align' => array (),
+ 'class' => array ()),
+ 'hr' => array(
+ 'align' => array (),
+ 'class' => array (),
+ 'noshade' => array (),
+ 'size' => array (),
+ 'width' => array ()),
+ 'i' => array(),
+ 'img' => array(
+ 'alt' => array (),
+ 'align' => array (),
+ 'border' => array (),
+ 'class' => array (),
+ 'height' => array (),
+ 'hspace' => array (),
+ 'longdesc' => array (),
+ 'vspace' => array (),
+ 'src' => array (),
+ 'style' => array (),
+ 'width' => array ()),
+ 'ins' => array(
+ 'datetime' => array (),
+ 'cite' => array ()),
+ 'kbd' => array(),
+ 'label' => array(
+ 'for' => array ()),
+ 'legend' => array(
+ 'align' => array ()),
+ 'li' => array (
+ 'align' => array (),
+ 'class' => array ()),
+ 'p' => array(
+ 'class' => array (),
+ 'align' => array (),
+ 'dir' => array(),
+ 'lang' => array(),
+ 'style' => array (),
+ 'xml:lang' => array()),
+ 'pre' => array(
+ 'style' => array(),
+ 'width' => array ()),
+ 'q' => array(
+ 'cite' => array ()),
+ 's' => array(),
+ 'span' => array (
+ 'class' => array (),
+ 'dir' => array (),
+ 'align' => array (),
+ 'lang' => array (),
+ 'style' => array (),
+ 'title' => array (),
+ 'xml:lang' => array()),
+ 'strike' => array(),
+ 'strong' => array(),
+ 'sub' => array(),
+ 'sup' => array(),
+ 'table' => array(
+ 'align' => array (),
+ 'bgcolor' => array (),
+ 'border' => array (),
+ 'cellpadding' => array (),
+ 'cellspacing' => array (),
+ 'class' => array (),
+ 'dir' => array(),
+ 'id' => array(),
+ 'rules' => array (),
+ 'style' => array (),
+ 'summary' => array (),
+ 'width' => array ()),
+ 'tbody' => array(
+ 'align' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'valign' => array ()),
+ 'td' => array(
+ 'abbr' => array (),
+ 'align' => array (),
+ 'axis' => array (),
+ 'bgcolor' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'class' => array (),
+ 'colspan' => array (),
+ 'dir' => array(),
+ 'headers' => array (),
+ 'height' => array (),
+ 'nowrap' => array (),
+ 'rowspan' => array (),
+ 'scope' => array (),
+ 'style' => array (),
+ 'valign' => array (),
+ 'width' => array ()),
+ 'textarea' => array(
+ 'cols' => array (),
+ 'rows' => array (),
+ 'disabled' => array (),
+ 'name' => array (),
+ 'readonly' => array ()),
+ 'tfoot' => array(
+ 'align' => array (),
+ 'char' => array (),
+ 'class' => array (),
+ 'charoff' => array (),
+ 'valign' => array ()),
+ 'th' => array(
+ 'abbr' => array (),
+ 'align' => array (),
+ 'axis' => array (),
+ 'bgcolor' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'class' => array (),
+ 'colspan' => array (),
+ 'headers' => array (),
+ 'height' => array (),
+ 'nowrap' => array (),
+ 'rowspan' => array (),
+ 'scope' => array (),
+ 'valign' => array (),
+ 'width' => array ()),
+ 'thead' => array(
+ 'align' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'class' => array (),
+ 'valign' => array ()),
+ 'title' => array(),
+ 'tr' => array(
+ 'align' => array (),
+ 'bgcolor' => array (),
+ 'char' => array (),
+ 'charoff' => array (),
+ 'class' => array (),
+ 'style' => array (),
+ 'valign' => array ()),
+ 'tt' => array(),
+ 'u' => array(),
+ 'ul' => array (
+ 'class' => array (),
+ 'style' => array (),
+ 'type' => array ()),
+ 'ol' => array (
+ 'class' => array (),
+ 'start' => array (),
+ 'style' => array (),
+ 'type' => array ()),
+ 'var' => array ());
+
+ $CONFIG->allowedprotocols = array('http', 'https', 'ftp', 'news', 'mailto', 'rtsp', 'teamspeak', 'gopher', 'mms',
+ 'color', 'callto', 'cursor', 'text-align', 'font-size', 'font-weight', 'font-style',
+ 'border', 'margin', 'padding');
}
register_elgg_event_handler('init','system','input_init');