富文本-过滤

需求: 富文本框总数被恶意用户输入script标签,使得加载其它页面,欺诈我的上帝(用户), 简单过滤script,又会使用embed、iframe等可以加载第三方页面的有危害标签。

问题: 有什么方法,可以完善过滤掉用户输入的所有富文本内容,只留下没有危害的富文本内容?

方案:

基础知识:

富文本:  就是一个框需要让用户可以输入html一些标签,以达到美化界面的功能。

恶意标签: 插入这些标签,可以改变页面原来的内容,还有可能控制整个页面。进而实现钓鱼、挂马或盗取数据等危害比较大的事情。

解决方案: 就是设定一个标签和属性白名单(因为即使白名单的标签img,里面的属性-onerror等也可能导致执行javascript,也是非常危险). 对用户输入进行检查,只允许白名单中的标签和属性才能通过检查,否则就拒绝用户请求(对于恶意用户不要提供友好的用户体验,以防止防御被绕过,比如过滤危险标签 script,当用户输入sscriptcript时,就会导致被绕过)

由于不同开发程序使用的不一样,分开讨论。

PHP-富文本过滤

百度一下 php富文本过滤,很容易找到一个开源库-HTMLPurifier。

测试过程:

1. 下载开源库 官网地址:

http://htmlpurifier.org/  

  测试时下载的最新版 4.9.1版本

2. 使用:

将下载htmlpurifier库,解压到webroot目录下,并且将文件夹重命名为-htmlpurifier,即

webroot/htmlpurifier/library/HTMLPurifier.includes.php.

新建一个测试页面test.php,内容如下:

居然不能贴代码 差评

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,995评论 25 709
  • 之前积累了XSS 有一段时间,因为目前开始了一件有趣的工程,需要整合非常多的知识,其中Web 安全这一块出现最多的...
    刀背藏身阅读 13,106评论 0 16
  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 4,446评论 1 2
  • 一个男孩要有自己的想法,要有自己的原则,不要从众,不要从众,不要从众。
    许维桢阅读 1,283评论 0 0
  • 我没有勇气再问我妈妈那个人埋葬的地方。很小的时候便和同伴找到了这座全村最高的山,并以爬到顶峰为乐事。此时我就站在山...
    江柏豪阅读 2,206评论 0 0

友情链接更多精彩内容