HTML Purifier仅关闭未关闭的标记

时间:2015-08-14 18:41:39

标签: php htmlpurifier

仅使用HTML PURIFIER关闭未关闭的标签而不删除XSS漏洞或其他任何内容?

官方网站:http://htmlpurifier.org/

仅对未关闭的标签使用HTML PURIFIER(防止删除类,样式等):)

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过简单地覆盖负责处理令牌的"策略"来利用HTML Purifier内置的HTML解析器来实现这一目的。以下是如何做到这一点:

include_once 'library/HTMLPurifier.auto.php';

$raw = '<a href="onclick:xss()">foo';

class HTMLPurifier_Strategy_Null extends HTMLPurifier_Strategy {
    public function execute($tokens, $config, $context) {
        return $tokens;
    }
}

class HTMLLinter extends HTMLPurifier {
    public function __construct($config = null) {
        parent::__construct($config);
        $this->strategy = new HTMLPurifier_Strategy_Null();
    }
}

$linter = new HTMLLinter();
echo $linter->purify($raw);