2012-11-06 69 views
5

我想允许有限用户可以在我的论坛中使用的HTML标签白名单。所以,我已经配置了HTML净化器像这样:HTML净化器 - 更改默认允许的HTML标签配置

$config = HTMLPurifier_Config::createDefault(); 
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li'); 
$purifier = new HTMLPurifier($config); 

我想知道是,请问HTML净化器的默认配置仍然适用,公认的HTML标签的数量减少之外做我需要手动重新设置每个可能的配置参数?

此外,我应该以任何方式调整默认配置以保持安全吗?我对整个XSS保护新手不熟悉,对于HTML Purifier来说是新手,并没有发现手册给出了很多“基本”技巧和提示。

回答

0

为什么不只是使用DOM解析器并检查标记类型是否在允许的HTML标记白名单中?

将输入转换为DOM节点列表,您应该可以遍历所有DOM节点并检查是否允许该类型。 php.net有很好的例子说明了如何做到这一点,如你试图解决输入消毒问题。

点击此处了解详情: http://php.net/manual/en/class.domdocument.php

+0

为什么要重新发明轮子? HTMLPurifier是一个很好的成熟产品。 – rjmunro