社区
基础编程
帖子详情
论坛程序用HTML在线编辑器的话,怎么过滤用户的输入呢?
stan23
2006-11-14 04:26:48
不过滤会有很多危险的HTML代码
又要保留一些必须图片、FLASH的标签
找了半天找到相关代码,谁做过这个?
...全文
464
27
打赏
收藏
论坛程序用HTML在线编辑器的话,怎么过滤用户的输入呢?
不过滤会有很多危险的HTML代码 又要保留一些必须图片、FLASH的标签 找了半天找到相关代码,谁做过这个?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
街头小贩
2006-11-17
打赏
举报
回复
老生长谈的问题
lianpingtc
2006-11-17
打赏
举报
回复
谢谢
lucklrj
2006-11-17
打赏
举报
回复
我以前写的,你自己参考下,不完全安全
<?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","<\\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;
?>
lucklrj
2006-11-17
打赏
举报
回复
如果你要使用在线编辑器的化,
在服务端你要过滤很多,具体找找跨站攻击 相关的吧。
lianpingtc
2006-11-17
打赏
举报
回复
怎么没人说话啊.我在在线等啊
lianpingtc
2006-11-17
打赏
举报
回复
各位高手:我也有个表单的问题:
我用php做了个留言版.用户提交信息时,有专门页面act.php检测!如果输入不完整,就回到原来留言的页面.但用户原先输入的内容已经刷新掉了.想问一下怎么保留原先输入的内容.<急!!>
tod204
2006-11-16
打赏
举报
回复
请使用inputfilter.这样你就不用担心
afoskoo
2006-11-16
打赏
举报
回复
strip_tags 可过滤指定的HTML标签
过滤空格 preg_replace("/ +/"," ",$string);
stan23
2006-11-16
打赏
举报
回复
比如CSDN的BLOG,用的是FCK,我也可以插入JAVASCRIPT:
http://blog.csdn.net/stan23/archive/2006/11/16/1389013.aspx
lianpingtc
2006-11-16
打赏
举报
回复
想问各位高手:留言版怎么过滤掉用户输入的空格?
stan23
2006-11-16
打赏
举报
回复
楼上没用过HTMLAREA或FCK吗?
xuenping
2006-11-16
打赏
举报
回复
好东东收藏一下
lianpingtc
2006-11-16
打赏
举报
回复
谢谢!还是不能解决,能不能具体点
idealabc
2006-11-16
打赏
举报
回复
找个UBB,都是用正则过滤的
lianpingtc
2006-11-16
打赏
举报
回复
我也想知道这个问题.假如别人留言时输入html代码,怎么样把它过滤掉.<急!!在线等!>
PleaseDoTellMeWhy
2006-11-16
打赏
举报
回复
所见即所得的那种编辑器,他也是UBB的形式的,只不过多了一道工序,
让你不用手工输入那些UBB代码了!
你也可以affirm那些用户的数据立即替换为UBB代码,提交的时候,
只替换正确的UBB代码为HTML格式,其它的一律不管!
恶意的JS代码,他也必须是<script>开头</script>结尾
你把<和>在PHP脚本中替换掉!
<替换为<
>替换为>
输出到HTML时候显示< 和 >
这样JS还能执行吗?
cho__cho
2006-11-16
打赏
举报
回复
收藏
潜力T
stan23
2006-11-16
打赏
举报
回复
谢谢各位的回答,但是问题没解决:
1、我用的HTML在线编辑器是HTMLAREA那样的所见即所得的,不是用UBB的
2、用JS过滤的话,可以被用户绕过
3、不过滤我觉得是有危险的,比如用户可能输入一些JS恶意代码
juzibaby
2006-11-15
打赏
举报
回复
为什么要屏蔽呢?你觉得写些程序内容就会攻击到服务器吗?这些只不过是字符串罢了
rf123
2006-11-15
打赏
举报
回复
有需要过滤吗,输出时htmlspecialchars就可以了
加载更多回复(7)
php网页可视化编辑器,推荐几款
HTML
可视化
在线编辑器
做博客,
论坛
等一些
用户
发表文章之类的网站的时候肯定会用到
HTML
编辑器,我最近那个小
论坛
找了几款可视化编辑器都不错,就是觉得文件还是有点大了基本都是300kb左右。以下只说对于PHP环境的编辑器操作!1.百度...
html
页面如何嵌入word
在线编辑器
,网页word编辑器 网页中如何嵌入word编辑器
Fckeditor,Ewebeditor 只是
HTML
编辑器,不能编辑真正的word,把word内容拷贝进来时要丢失格式,还要重新排版,也无法精确地控制打印或打印预览。建议使用word的专用
在线编辑器
——SOAOffice中间件,打开编辑保存都...
七个好用且免费的在线代码编辑器,你喜欢哪个?
七个好用且免费的在线代码编辑器,你喜欢哪个?免费的在线 IDE 对我们开发人员来说只是一种福利。在我们购买 IDE 或安装市场上的免费 IDE 之前,让我告诉你,我们根据要使用的技术安装和配置编辑器。
uniapp 微信小
程序
editor富文本编辑器 api 使用记录
uniapp 微信小
程序
editor富文本编辑器 api 使用记录
常见编辑器漏洞汇总【超全】(转载)
编辑器是非常好用的网页
在线编辑器
,顾名思义就是让我们的
用户
可以在网页上进行文本的编辑,可以在网页上设置字体的样式段落行间距类似于用word编辑比较方便,并将工具生成得到的
html
样式插入到数据库中我们可以右键,...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章