1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP下使用富文本过滤器 HTML Purifier 防止xss跨站攻击

PHP下使用富文本过滤器 HTML Purifier 防止xss跨站攻击

时间:2020-04-26 10:38:53

相关推荐

PHP下使用富文本过滤器 HTML Purifier 防止xss跨站攻击

php教程|php手册

purifier防止,xss跨站攻击

php教程-php手册

CMS为了文章编辑内容,都会在后台集成在线编辑器,如FCKEditor等,但是这种很容易XSS跨站攻击,以下我们来看一下使用 HTML Purifier 如何防止xss跨站攻击.

黑客网页源码,vscode 全文件搜索,新装的ubuntu,网页无法打开tomcat,java 爬虫 豆瓣,在线投稿系统 php,政和有效的seo服务电话,网站源码带sql数据库,手机端页面模板lzw

随着html可视即可得编辑器的流行,很多网站使用了这样的编辑器,比如FCKEditor、百度UEditor编辑器等等。

手机抽奖源码,怎样设置vscode为中文,ubuntu sudo卸载,运维简历tomcat,js爬虫失败,php 随机昵称,江苏seo排名优化平台,模仿网站怎么做,痞子wordpress模板lzw

跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头,最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode).

点击广告网站源码,vscode c语言执行,Ubuntu内存少,tomcat架构性能,sqlite两张表赋值,国内首例利用爬虫软件盗取数据案,php web开发 教程,綦江区seo优化项目,网站tag标签功能实现,个人信息页面html模板lzw

但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BB Code的方法,使用特定的标签代替一些格式,比如:[ B ]表示粗体,等等,但是,BB Code这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准格式.

为了让用户的输入更具表现力,涌现了大量的Html编辑器控件,著名的有FCKEditor,FreeTextBox,Rich TextBox,Cute Editor,TinyMCE等等。我个人比较喜欢Cute Editor,功能强大,性能不错,而且容易定制。

使用这些Html编辑器控件的潜在危险,是用户可能会输入一些危险字符,注入到网站中,形成XSS攻击。一个最简单的输入就是:

alert(‘xss’)

XSS 输入攻击也可能是 HTML 代码段,譬如:

(1).网页不停地刷新

(2).嵌入其它网站的链接

对于PHP开发者来说,如何去防范XSS攻击呢?(php防止xss攻击的函数),这里飘易推荐HTML Purifier工具.

HTML Purifier官网:/

HTML Purifier是基于php 5所编写的HTML过滤器,支持自定义过滤规则,还可以把不标准的HTML转换为标准的HTML,是WYSIWYG编辑器的福音。

HTML Purifier,这是一个符合W3C标准的HTML过滤器,可以生成标准的HTML代码,并且有很多的自定义配置,可以过滤掉javascript代码等,有效的防止XSS!

A、使用HTML Purifier的要求

HTML Purifier 只需要PHP 5.0.5以及以上版本,并且不需要其他核心组件的支持。HTML Purifier 不兼容 zend.ze1_compatibility_mode。

以下5个是可选扩展,可以增强HTML Purifier的性能(can enhance the capabilities of HTML Purifier):

* iconv : Converts text to and from non-UTF-8 encodings * bcmath : Used for unit conversion and imagecrash protection * tidy : Used for pretty-printing HTML * CSSTidy : Clean CSS stylesheets using %Core.ExtractStyleBlocks * Net_IDNA2 (PEAR) : IRI support using %Core.EnableIDNA

使用前请阅读HTML Purifier详细安装说明:/live/INSTALL

B、基本用法

默认下,使用UTF-8编码,和XHTML 1.0 Transitional文档类型.

require_once(HTMLPurifier/library/HTMLPurifier.auto.php); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $dirty_html = <<<EOF

Hello alert("world"); EOF;$cleanHtml = $purifier->purify($dirty_html);//输出:

Hello

过滤了XSS代码,过滤规则:/live/smoketests/xssAttacks.php

自动填充了残缺的标签

C、使用配置

配置主要用于设置规则,使用比较简单.

$config = HTMLPurifier_Config::createDefault(); // something.... $purifier = new HTMLPurifier($config);

详细的配置规则:/live/configdoc/plain.html

文章链接:

随便收藏,请保留本文地址!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。