喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [代码] 文本编辑器里html代码安全的问题  
 
zhong8808
新手上路
Rank: 1


UID 114785
精华 0
积分 0
帖子 5
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-17
状态 离线
文本编辑器里html代码安全的问题

本文由第一空间互助社区shaoyangbiz原创

无论是ASP、还是PHP,有很多的editor都转用html编辑器,放弃了传统的UBB编辑器,如果是自己或自己信的过的人提交带有HTML代码,可能这不会出现什么问题,但是如果给别有用心失利用了,可能会有很大的隐患,但是全部屏蔽了HTML,那又不会显示我们想要的效果。

于是KSES出现了,KSES就是过滤全部除程序员指定的HTML TAG以外的一个函数,同时KSES是开源的。
KSES的官方网站地址是:http://sourceforge.net/projects/kses 你可以在这下载最新的kses

下载好,取出来根目录的里的 kses.php,然后我们动手做一个测试

<?
include 'kses.php';

//定义一个用来测试的带有HTML TAG的字符串
$string = '<strong>test STRONG tag</strong>,<b>test B tag</b>';

//允许的html tag 数组
$kses_allowed = array (
        'address' => array (),
        'a' => array ('href' => array (), 'title' => array (), 'rel' => array (), 'rev' => array (), 'name' => array ()),
        'abbr' => array ('title' => array ()),
        'acronym' => array ('title' => array ()),
        'strong' => array (),
        'big' => array (),
        'blockquote' => array ('cite' => array ()),
        'br' => array (),
        'button' => array ('disabled' => array (), 'name' => array (), 'type' => array (), 'value' => array ()),
        'caption' => array ('align' => array ()),
        'code' => array (),
        'col' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'span' => array (), 'valign' => array (), 'width' => array ()),
        'del' => array ('datetime' => array ()),
        'dd' => array (),
        'div' => array ('align' => array ()),
        'dl' => array (),
        'dt' => array (),
        'em' => array (),
        'fieldset' => array (),
        'font' => array ('color' => array (), 'face' => array (), 'size' => array ()),
        'form' => array ('action' => array (), 'accept' => array (), 'accept-charset' => array (), 'enctype' => array (), 'method' => array (), 'name' => array (),'id' => array (), 'target' => array ()),
        'h1' => array ('align' => array ()),
        'h2' => array ('align' => array ()),
        'h3' => array ('align' => array ()),
        'h4' => array ('align' => array ()),
        'h5' => array ('align' => array ()),
        'h6' => array ('align' => array ()),
        'hr' => array ('align' => array (), 'noshade' => array (), 'size' => array (), 'width' => array ()),
        'i' => array (),
        'img' => array ('alt' => array (), 'align' => array (), 'border' => array (), 'height' => array (), 'hspace' => array (), 'longdesc' => array (), 'vspace' => array (), 'src' => array (), 'width' => array ()),
        'ins' => array ('datetime' => array (), 'cite' => array ()),
        'kbd' => array (),
        'label' => array ('for' => array ()), 'legend' => array ('align' => array ()),
        'li' => array (),
        'p' => array ('align' => array ()),
        'pre' => array ('width' => array ()),
        'q' => array ('cite' => array ()),
        's' => array (),
        'strike' => array (),
        'sub' => array (),
        'sup' => array (),
        'table' => array ('align' => array (), 'bgcolor' => array (), 'border' => array (), 'cellpadding' => array (), 'cellspacing' => array (), 'rules' => array (), 'summary' => array (), 'width' => array ()),
        'tbody' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()),
        'td' => array ('abbr' => array (), 'align' => array (), 'axis' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'colspan' => array (), 'headers' => array (), 'height' => array (), 'nowrap' => array (), 'rowspan' => array (), 'scope' => array (), 'valign' => array (), 'width' => array ()),
        'textarea' => array ('cols' => array (), 'rows' => array (), 'disabled' => array (), 'name' => array (), 'readonly' => array ()),
        'tfoot' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()),
        'th' => array ('abbr' => array (), 'align' => array (), 'axis' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'colspan' => array (), 'headers' => array (), 'height' => array (), 'nowrap' => array (), 'rowspan' => array (), 'scope' => array (), 'valign' => array (), 'width' => array ()),
        'thead' => array ('align' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()),
        'title' => array (),
        'tr' => array ('align' => array (), 'bgcolor' => array (), 'char' => array (), 'charoff' => array (), 'valign' => array ()),
        'tt' => array (),
        'u' => array (),
        'ul' => array (),
        'ol' => array (),
        'var' => array ()
);

//输出过滤后的结果
echo kses($string, $kses_allowed);
?>
什么结果,自己看一看吧
2008-4-11 11:17 PM#1
查看资料  发短消息  顶部
 
phpx_goseaside (goseaside)
高级会员
Rank: 4
初看没有问题,细看全是问题


UID 30280
精华 1
积分 977
帖子 939
金钱 967 喜悦币
威望 10
人脉 0
阅读权限 50
注册 2004-7-23
来自 北京
状态 离线
[推荐阅读] sql 关于列值为NULL的问题。
strip_tags 这个函数不是用来干这个的吗?
干吗再弄一个




每天进步一 mm
2008-4-16 06:15 PM#2
查看资料  访问主页  发短消息  顶部
 
moocky (木目子)
高级会员
Rank: 4
风铃浅唱文学原创



UID 17594
精华 0
积分 853
帖子 847
金钱 853 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2002-11-8
状态 离线
[推荐阅读] 大家帮帮忙,表中加数据
应该挺有用的,去看看,自己写了个只能凑合用



风铃浅唱文学
木目子技术交流站(有非常多的在线手册)
寻求可以一起创业的朋友。请Q我:
2008-4-28 09:25 AM#3
查看资料  访问主页  发短消息  QQ  顶部
 
sp_dzy
新手上路
Rank: 1



UID 115960
精华 0
积分 10
帖子 13
金钱 10 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-24
状态 离线
[推荐阅读] 请教一个问题。。。急。谢谢。


QUOTE:
原帖由 phpx_goseaside 于 2008-4-16 06:15 PM 发表
strip_tags 这个函数不是用来干这个的吗?
干吗再弄一个
strip_tags会把所有的html标签给删掉。安全是安全了。但是也有失去了用editor人意义了

不好意思。忘了后面还有个参数

[ 本帖最后由 sp_dzy 于 2008-5-10 07:45 PM 编辑 ]
2008-5-10 07:42 PM#4
查看资料  发短消息  顶部
 
LuckLrj (中国php中的爱因斯坦)
版主
Rank: 7Rank: 7Rank: 7
老会员


UID 64836
精华 0
积分 2306
帖子 3099
金钱 2306 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-6-19
状态 离线
[推荐阅读] 虚拟主机,服务器租用托管,网站建设找光辉!!
关键是过滤js 这个比较麻烦



学习,工作累了,请访问我的小站,娱乐一下。http://www.52sunny.net
2008-5-17 09:27 PM#5
查看资料  Blog  发短消息  顶部
 
yarco
新手上路
Rank: 1



UID 123596
精华 0
积分 35
帖子 30
金钱 35 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-5-16
状态 离线
[推荐阅读] PHP何时逃离"视图"范围
个人不是很喜欢在线编辑器..........................

我有一个额外的问题........
就是IE/Firefox在实现解析textarea的时候,为什么不内置这个功能?
2008-5-18 06:07 PM#6
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.029644 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP