XssHtml Fliter

php富文本过滤类,XSS Filter

< XssHtml > PHP XSS Filter Class

一个基于php的富文本过滤类,防御XSS攻击。

版本:v1.0.1 release 20140621

Featrue

  1. 过滤XSS,简单易用,只要调用一个类方法即可。
  2. 使用白名单过滤,杜绝一切可能产生威胁的HTML标签与属性
  3. 使用PHP5的DomDocument类处理富文本,不需其他扩展支持,可以用于几乎所有虚拟主机、VPS环境
  4. 面向对象思路设计类,重用性、扩展性都比较好,方便二次开发(增加新功能、对新标签的过滤)

Weakness(fix)

  1. 不支持IE6,IE6下仍然可能存在XSS。希望IE6更快退出历史舞台。
  2. 部分标签的属性、功能可能被过滤。但大部分常见标签、属性可以正常使用。

Useage

<?php
require('xsshtml.class.php');
$html = '<html code>';
$xss = new XssHtml($html);
$html = $xss->getHtml();
?>

构造函数接受三个参数: new XssHtml($html, $charset, $allow_tag)

html < string > 待过滤的HTML代码
charset < string > 编码,默认为utf-8
allow_tag < array > 允许的标签组成的数组,默认为array('a', 'img', 'br', 'strong', 'b', 'code', 'pre', 'p', 'div', 'em', 'span', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'table', 'ul', 'ol', 'tr', 'th', 'td', 'hr', 'li', 'u')

获得XssHtml对象以后调用getHtml()即可获得过滤后的内容。

Demo

可在此处进行测试,希望能发现问题并报告~
http://xsshtml.leavesongs.com/

Update Log

Thinks

@Mramydnei,给我提供了一个很好的思路。
@sina 最近测试新浪的一些漏洞,借鉴了部分过滤思路。

Contributors

Phithon - 努力追逐大牛的小白