`
lucklrj
  • 浏览: 23824 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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

阅读更多
过滤在线编辑器产生的不安全html代码;
<?php
/**
* 过滤在线编辑器产生的不安全html代码.
*
* PHP versions 4 and 5
*
* @copyright 版权所无,任意传播.
* @link http://www.52sunny.net
* @name html过滤
* @version v 0.0.10
* @author Lucklrj (sunny_lrj@yeah.net,qq:7691272)
* @lastmodified 2006-06-09 10:42 (Tue, 2006-06-09)
* @notice 此版本只过滤js,框架,表单。
作者能力有限,使用本程序若产生任何安全问题,与本人无关。
欢迎来信与我交流。
*/
str="<tr><td bgcolor='#FFFFFF'>
<div style='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;
?>
分享到:
评论

相关推荐

    在线编辑器 html

    实现Word代码自动检测并清理,提供高效完美的Word代码过滤方案,生成代码最优化精简,但是却不丢失任何细节效果。 安全的UBB 提供完美的UBB可视化编辑器解决方案,在您获得安全高效代码存储的同时,又能享受可视化...

    jtbcEditor在线编辑器

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

    代码生成器-可自定义模版-guns

    3. 利用beetl模板引擎对前台页面进行封装和拆分,使臃肿的html代码变得简洁,更加易维护。 4. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护,具体请见webapp/static/js/common文件夹内js代码。 5. ...

    ubb代码编辑器 discuz

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

    HTML图片轮播滑动代码生成器Amazing Slider v6.1注册版.rar

    Amazing Slider是一款很有用的程序,它让你在不懂任何编程的情况下快速生成滑动图片代码。可自定义文本效果及滑动效果,内置数十种过滤效果,可发布到文件夹、WordPress插件或Drupal模块。五个步骤可以快速生成图片...

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

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

    在线编辑器CuteEditer

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

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

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

    162100editor(HTML编辑器) v3.7

    162100editor(HTML编辑器)是一个真正的迷你HTML编辑器,只一个JS文件搞定。 1、原创作品,代码简洁、短小精悍,使用方便。 2、所见即所得,几乎包含所有书写应用功能。 3、设计模式与源码模式随意切换。 4、JS+CSS...

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

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

    bueditor:普通的textarea编辑器,旨在促进代码编写和常规编写

    BUEditor 普通的textarea编辑器,旨在促进... 确保您的输入格式未过滤编辑器插入的标签。高级用法: 参见ADVANCED.md执照该项目是GPL v2软件。 请参阅此目录中的LICENSE.txt文件以获取全文。当前的维护者 。学分该模

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

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

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

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

    编辑器 KindEditor 4.0.4

    编辑器 KindEditor 4.0.4 KindEditor 是一套开源的在线HTML... Bugfix: 分页符在不同浏览器下生成的HTML代码不一致。 Bugfix: [IE6-7] 插入URL里有大写字符的图片,右键点击选择图片属性,更改图片属性后图片不能显示

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

    - 支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法,也可变身为代码编辑器 - 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、跳转到行、搜索替换、只读模式、...

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

    支持“标准” Markdown / CommonMark 和 Github 风格的语法,也可变身为代码编辑器; 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、搜索替换、只读模式、自定义样式主题和多语言语法高亮等...

    js过滤HTML标签以及空格的思路及代码

    今天要做一个应用--判断编辑器中文字的个数。如果少如20个字就不能让其提交。没多想,正好周末的时候看了一下js中正则表达式的内容。很容易就想到了要用正则表达式来解决这个问题。虽说看了正则表达式的内容是看了,...

    Visual Basic代码通用混淆器

    主要用于避免防病毒软件和邮件过滤器检测,以及蓝队审查任务。 这是对带有嵌入了RobustPentestMacro的恶意Word文档进行VirusTotal.com扫描的样本,其中包含了由Empire生成的powershell加载程序: 无混淆扫描结果 ...

    xheditor 1.2.2.zip

    实现Word代码自动检测并清理,提供高效完美的Word代码过滤方案,生成代码最优化精简,但是却不丢失任何细节效果。 安全的UBB 提供完美的UBB可视化编辑器解决方案,在您获得安全高效代码存储的同时,又能享受可视化...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    1)改用Session代替部分Cookie储存上传功能所用到的配置数据,以便让编辑器上传更加安全。 2)修正一个文件格式上传时存在的安全性问题。 3)上传页面去掉所有input隐藏属性储存参数,改用ViewState储存,并加入ViewState...

Global site tag (gtag.js) - Google Analytics