过滤在线编辑器产生的不安全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","span>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("/ +/"an style="COLOR: #000000">, " ", $str);//过滤多个空格
/*过滤/替换几种形式的js*/
$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str);//删除<script>。。。</script>格式,
//$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","<\1>\2<\3>",$str);//替换为可以显示的,
$str=preg_replace("/<(script.*?)>/si","",$str);//删除<script>未封闭
//$str=preg_replace("/<(script.*?)>/si","<\1>",$str);//替换未封闭
/*删除/替换表单*/
$str=preg_replace("/<(/?form.*?)>/si","",$str);//删除表单
//$str=preg_replace("/<(/?form.*?)>/si","<\1>",$str);//替换表单
$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str);//删除框架
//$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","<\1>\2<\3>",$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("&","&",$str);
echo $str;
?>
分享到:
相关推荐
在本文中,我们将深入探讨“XhtmlEditor”这一特定的在线编辑器源代码,以及它如何有助于开发小型在线编辑器。 首先,让我们了解HTMLEditor标签所代表的内容。HTML(超文本标记语言)编辑器是一种工具,它提供了...
1. **安全性**:与HTML相比,UBB代码不支持执行脚本,因此可以有效防止XSS(跨站脚本攻击)和其他恶意代码的注入。这保护了论坛用户和服务器的安全,降低了被黑客利用的风险。 2. **控制性**:管理员可以通过配置...
综上所述,开发一个HTML编辑器涉及的知识点包括HTML5的`contenteditable`属性、事件处理、富文本与HTML代码的转换、安全过滤以及操作历史管理等。通过分析“RichTextEditor”这个源代码,我们可以深入了解这些概念的...
**HtmlEditor** 可能是指一个更通用的HTML编辑器名称,这可能是一个简单或者定制化的解决方案,用于在网页上编辑HTML代码。它通常会包含基本的文本格式化功能,并可能提供一些高级特性,如预览、HTML标签查看和代码...
Html2UBB在线编辑器是一种专门用于转换HTML代码到UBB(Undernet Bulletin Board)代码的工具,尤其适用于网络论坛和社区的评论功能。UBB是一种标记语言,它简化了HTML,使得用户在没有深入HTML知识的情况下也能方便...
5. **安全考虑**:由于在线编辑器允许用户输入HTML代码,所以必须考虑到XSS(跨站脚本攻击)等安全问题。应确保对用户提交的内容进行过滤或转义,防止恶意代码执行。 6. **用户体验**:为了提升用户体验,可以优化...
4. **安全过滤**:为了防止XSS攻击,编辑器需要过滤掉所有不安全的输入,如 `<script>` 标签或者URL中的可疑参数。 5. **富文本处理**:为了让用户能方便地编辑文本,编辑器需要支持各种格式化选项,如粗体、斜体、...
7. **兼容性测试**:由于不同的浏览器对HTML和JavaScript的支持程度不同,测试编辑器在各种主流浏览器上的表现也是必不可少的步骤。 综上所述,HTML编辑器控件在ASP.NET中扮演着至关重要的角色,它提供了一种直观的...
dz动网论坛在线文本编辑器通过过滤和转义用户输入,有效防止了XSS跨站脚本攻击和其他潜在的安全风险。同时,编辑器还可能包含防止SQL注入的机制,保护论坛数据库不受恶意代码的侵害。 在技术实现上, dz动网论坛...
在线编辑器插件是一种网页应用,它允许用户在浏览器中直接进行文本编辑、代码编写或者内容创作,无需下载安装任何软件。这样的工具对于初学者来说非常友好,因为它们提供了直观的界面和便捷的操作方式,降低了学习和...
精简迷你 编辑器初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip...提供完美的UBB可视化编辑器解决方案,在您获得安全高效代码存储的同时,又能享受可视化编辑的便捷。
然而,也需要注意一些挑战和安全问题,如XSS(跨站脚本攻击)风险,因为用户输入的HTML代码可能会被执行。因此,通常需要对用户提交的内容进行过滤和消毒,以防止恶意代码的注入。 总的来说,纯Html+js在线编辑器是...
HTML文本编辑器是一种在线工具,它允许用户通过图形化用户界面创建和编辑HTML代码,而无需深入了解HTML语言的复杂性。这些编辑器通常提供WYSIWYG(所见即所得)的功能,使得用户可以像在普通文字处理软件中那样操作...
- **安全性**:在使用编辑器时,需要注意XSS攻击风险,对用户输入的HTML内容进行安全过滤和编码处理。 - **兼容性**:确保编辑器在主流浏览器如Chrome、Firefox、Safari和Edge等上有良好的表现。 新浪HTML在线...
确保在线编辑器安全的方法包括:对用户输入进行严格的过滤和转义,防止XSS(跨站脚本攻击);对上传文件进行检查,避免恶意文件的上传和执行;以及定期更新和修补任何已知的安全漏洞。 在实际使用过程中,开发者...
9. **安全性**:KindEditor在设计时考虑了安全性,如防止XSS攻击,通过过滤或转义不安全的HTML标签来保护网站免受恶意代码的侵害。 10. **易用性**:用户界面简洁直观,新用户也能快速上手。 在实际应用中,...
总之,Web在线编辑器是现代互联网应用中不可或缺的一部分,它的设计和实现涵盖了前端技术、后端服务以及用户体验等多个方面。随着技术的发展,未来的Web在线编辑器将更加智能、易用且功能强大。
8. **安全性**:在处理用户输入时,源代码需要考虑XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等安全问题,通过过滤输入、验证用户操作和使用安全的API来防止攻击。 9. **用户体验**:一个优秀的HTML编辑器会关注...
2. **WYSIWYG(所见即所得)**:编辑器提供了一个与Microsoft Word类似的界面,让用户在编写HTML时可以直接预览效果,无需了解HTML代码。 3. **后端交互**:Asp.net2.0作为后端框架,处理前端提交的数据,例如接收...
### Java百度编辑器提交过滤标签方法 在进行Web开发时,常常会遇到用户提交的数据包含HTML标签、脚本标签或样式标签的情况。为了防止XSS(跨站脚本攻击)等安全问题,开发者通常需要对这些输入进行过滤处理。本文将...