`
sxysxy
  • 浏览: 215953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

过滤在线编辑器产生的不安全html代码.

 
阅读更多
<?php
/**
*过滤在线编辑器产生的不安全html代码.
*
*PHPversions4and5
*
*@copyright版权所无,任意传播.
*@linkhttp://www.52sunny.net
*@namehtml过滤
*@versionv0.0.10
*@authorLucklrj(sunny_lrj@yeah.net,qq:7691272)
*@lastmodified2006-06-0910:42(Tue,2006-06-09)
*@notice此版本只过滤js,框架,表单。
作者能力有限,使用本程序若产生任何安全问题,与本人无关。
欢迎来信与我交流。
*/
$str="<tr><tdbgcolor='#FFFFFF'>
<divstyle='url(123.offsetWidth)>
";
//$str="url(javascript:x)";

/*不需要过滤的数组*/
$htm_on=array(
"<acronym","acronym>",
"<baseFont","baseFont>",
"<button","button>",
"<caption","caption>",
"<clientInformation","clientInformation>",
"<font","font>",
"<implementation","implementation>",
"<button","button>",
"<location","location>",
"<option","option>",
"<selection","selection>",
"<strong","strong>");

$htm_on_uper=array(
"<ACRONYM","ACRONYM>",
"<BASEFONT","BASEFONT>",
"<BUTTON","BUTTON>",
"<CAPTION","CAPTION>",
"<CLIENTINFORMATION","CLIENTINFORMATION>",
"<FONT","FONT>",
"<IMPLEMENTATION","IMPLEMENTATION>",
"<BUTTON","BUTTON>",
"<LOCATION","LOCATION>",
"<OPTION","OPTION>",
"<SELECTION","SELECTION>",
"<STRONG","STRONG>");

/*字符格式*/
$str=strtolower($str);
$str=preg_replace("/s+/","",$str);//过滤回车
$str=preg_replace("/+/","",$str);//过滤多个空格

/*过滤/替换几种形式的js*/
$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str);//删除<script>。。。</script>格式,
//$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","&lt;/1&gt;/2&lt;/3&gt;",$str);//替换为可以显示的,


$str=preg_replace("/<(script.*?)>/si","",$str);//删除<script>未封闭
//$str=preg_replace("/<(script.*?)>/si","&lt;/1&gt;",$str);//替换未封闭


/*删除/替换表单*/
$str=preg_replace("/<(/?form.*?)>/si","",$str);//删除表单
//$str=preg_replace("/<(/?form.*?)>/si","&lt;/1&gt;",$str);//替换表单


$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str);//删除框架
//$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","&lt;/1&gt;/2&lt;/3&gt;",$str);//替换框架


/*过滤on事件*/
$str=preg_replace("/href=(.+?)(["|'||>])/ie","'href='.strtoupper('/1').'/2'",$str);//把href=涉及到的on转换为大写。
$str=str_replace($htm_on,$htm_on_uper,$str);//把<font,font>换为大写,dhtml标签字符,正则判断太烦琐,采用转换办法。
$str=preg_replace("/(on[^.<>]+?)([|>])/s","/2",$str);//取掉on事件

/*过滤超级连接的js*/
$str=preg_replace("/(href|src|background|url|dynsrc|expression|codebase)[=:(](["']*?w+..*?|javascript|vbscript:[^>]*?)()?)([>/])/si","/1='#'/3/4",$str);//取掉href=javascript:

//返回小写字符

$str=strtolower($str);
$str=str_replace("&","&#x26;",$str);
echo$str;
?>
分享到:
评论

相关推荐

    jtbcEditor在线编辑器

    现在的编辑器一般主要分为2种,1种是非所见所得的UBB编辑器,1种是所见即所得的HTML编辑器,非所见所得的UBB编辑器虽然在编辑时不方便直接看到效果,但以其安全的特性依然在很多系统中广泛使用,而HTML编辑器虽然...

    在线编辑器 html

    精简迷你 编辑器初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip...提供完美的UBB可视化编辑器解决方案,在您获得安全高效代码存储的同时,又能享受可视化编辑的便捷。

    百度编辑器UEditor插件DjangoUeditor v1.8.143.zip

    Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大,像表格可以直接拖动调整单元格大小等。 更新历史 [2014-7-8] Ver:1.8.143 Fix:当admin使用inlines生成多实例时widget命名不正确的问题 [2014-6-27...

    PLSQL_Developer7.0中文帮助手册

    18. 编辑器................................185 18.1 选择功能.............185 18.2 列选择.185 18.3 指引线.186 18.4 代码助手.............186 18.5 重新调用语句.........187 18.6 专用复制.............188 ...

    Eclipse权威开发指南2.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 ...

    plsql中文使用说明

    学习pl/sql的好资料 目录 目录..........................................................................................................................8.7 队列定义编辑器......................................

    在线编辑器CuteEditer

    除了一般html编辑器具有的功能外,还有word过滤、图片在线处理、加水印等实用功能 使用关键步骤: 1、引用bin下的cuteEditor文件 2、在aspx页面顶部中添加引用 3、在aspx页面中加入...

    ubb代码编辑器 discuz

    使用ubb编辑器安全性能比普通的编辑器高。

    plsql developer 中文使用手册 最新 7.0 plsql developer 使用手册(中文)

    目录 目录.....................................................................................................................................8.7 队列定义编辑器..............................................

    pl/sql操作手册

    pl/sql 7.1操作手册,中文,总共239页 目录 目录................................................................................................................8.7 队列定义编辑器...............................

    PLSQL中文手册(相当全面)

    PL/SQL Developer 7.0 用户指南 目录 1.介绍.................................................9 2. 安装.....................................................................8.12 数据库连接定义编辑器............

    PLSQL Developer用户指南

    8.11 概要文件定义编辑器 ...........71 8.12 数据库连接定义编辑器 .........71 9. 图表...72 9.1 创建图表 .........72 9.2 保存和打开图表文件 ...........75 9.3 更新图表 .........75 10. 报告...76 10.1 标准...

    Eclipse权威开发指南3.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面...

    Eclipse权威开发指南1.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面...

    PLSQL_Developer_9.0用户指南

    PLSQL_Developer_9.0用户指南, 目录 3 1. 介绍 .............................................................................................9.1 表定义编辑器 ...................................................

    Quill编辑器插入自定义HTML记录的示例详解

    由于Quill编辑器自带的富文本过滤(大部分主流编辑器都会对富文本进行过滤处理),导致开发者想要配置自定义HTML模板时,遇到了不少麻烦。 一、Quill渲染逻辑分析 为了自定义Quill中的HTML块内容,首先需要了解Quill...

    jtbcEditor轻量级UBB所见即所得编辑器 v1.0 v1.0

    现在的编辑器一般主要分为2种,1种是非所见所得的UBB编辑器,1种是所见即所得的HTML编辑器,非所见所得的UBB编辑器虽然在编辑时不方便直接看到效果,但以其安全的特性依然在很多系统中广泛使用,而HTML编辑器虽然...

    162100editor(Html编辑器)v3.7.zip

    162100editor(Html编辑器)3.7版说明: 1、增加了二种编辑器初始模式:简洁版和完整版。 2、自由拉伸编辑器,变化编辑器大小。 3、其它大幅度的更新完善。   【简介】 真正的迷你HTML编辑器,只一个JS文件...

    Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件)

    Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建.支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法,也可变身为代码编辑器;...

Global site tag (gtag.js) - Google Analytics