HTMLPurifier插件防止XSS脚本攻击

Posted PHP技术拓展

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTMLPurifier插件防止XSS脚本攻击相关的知识,希望对你有一定的参考价值。

        XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括html代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而javascript是新型的“ShellCode”。

        php中,通过htmlspecialchars()函数,对用户输入的表单内容进行实体转义过滤,从而防止XSS脚本攻击。

        在ThinkPHP框架中,可以通过create()方法,对用户输入的表单内容进行过滤,从而防止XSS脚本攻击。其中的实质也是利用了

htmlspecialchars()函数进行实体转义。

        以上的两种发现都有一定的局限性,create()方法或者是htmlspecialchars()系统函数,都是进行批量的进行实体转义,就是所有的标签全都实体转义,但是有些时候我们应用富文本编辑器进行的样式操作不应该进行实体转义,下面我们就使用HTMLPurifier插件防止XSS脚本攻击。


使用步骤示例(ThinkPHP框架中引用):

    1.首先去百度下载HTMLPurifier插件,我们只使用其中的核心文件library即可。

    2.将核心文件library文件夹复制到tp框架的插件资源处(放哪都行)。如:

HTMLPurifier插件防止XSS脚本攻击

    3.通过函数对插件进行配置,如我放在Common下的funcion.php中(因为之中定义的函数可以在任意处调用)。

HTMLPurifier插件防止XSS脚本攻击

    4.在收集表单信息的时候,调用上面定义的fanXSS()函数,对其进行特定标签的进行过滤。简单示例:

HTMLPurifier插件防止XSS脚本攻击

    5.对指定允许的标签会保留,对不允许的标签和标签内容一起进行删除。



以上是关于HTMLPurifier插件防止XSS脚本攻击的主要内容,如果未能解决你的问题,请参考以下文章

使用 eBay 方式在 PHP 中防止对用户提交的 HTML 内容的 XSS 攻击

PHP 防xss攻击

PHP防御XSS攻击的终极解决方案

Web安全之防止XSS跨站脚本攻击

特殊字符的过滤,防止xss攻击

防止xss(跨站脚本攻击)