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框架的插件资源处(放哪都行)。如:
3.通过函数对插件进行配置,如我放在Common下的funcion.php中(因为之中定义的函数可以在任意处调用)。
4.在收集表单信息的时候,调用上面定义的fanXSS()函数,对其进行特定标签的进行过滤。简单示例:
5.对指定允许的标签会保留,对不允许的标签和标签内容一起进行删除。
以上是关于HTMLPurifier插件防止XSS脚本攻击的主要内容,如果未能解决你的问题,请参考以下文章