我目前正处于一个带有PHP前端的项目中.我们非常关注安全性,因为我们拥有相当多的用户,并且是黑客的有吸引力的目标.我们的用户可以提交以后可供其他用户看到的HTML格式的内容.这是一个很大的问题,因为我们很容易受到整套XSS攻击的攻击.我们尽可能地过滤,但攻击向量的种类非常多.
所以,我正在寻找基于PHP的HTML清理/过滤解决方案.商业解决方案很好(甚至是优选的).目前我们正在使用修改后的HTML净化器,但我们对结果不满意.
有哪些好的库/工具能够过滤HTML的恶意部分?
举例来说,HTML5意识很好,一旦它"在野外"可用,它将成为安全的噩梦.
更新: 我们正在深入配置HTML Purifier.看起来我们之前使用的旧框架根本就没有配置它.现在结果看起来好多了.
就个人而言,HTML Purifier项目的结果非常好
它是高度可定制的,具有庞大的代码库.唯一的问题是将文件上传到您的服务器.
您确定您的安装没有配置问题吗?如果配置正确,净化器根本不应该通过任何HTML标记.
来自网站:
HTML Purifier是一个用PHP编写的符合标准的HTML过滤器库.HTML Purifier不仅会删除所有恶意代码(更好地称为XSS),并且具有经过全面审核,
安全且允许的白名单,还可以确保您的文档符合标准,只有通过全面了解W3C的规范才能实现.
厌倦了使用BBCode,因为当前的
HTML过滤器不完整或不安全?有一个
WYSIWYG编辑器,但从来没有能够使用它?为您正在构建的应用程序寻找高质量,符合标准的开源组件?HTML Purifier适合您!
我在这里写了一篇关于如何在CodeIgniter中使用HTML净化器库的文章.
也许这将有助于再次尝试:
// load the config and overide defaults as necessary $config = HTMLPurifier_Config::createDefault(); $config->set('HTML', 'Doctype', 'XHTML 1.0 Transitional'); $config->set('HTML', 'AllowedElements', 'a,em,blockquote,p,strong,pre,code'); $config->set('HTML', 'AllowedAttributes', 'a.href,a.title'); $config->set('HTML', 'TidyLevel', 'light');