收藏文章 楼主
【原创文章】PHP实现bbcode安全html标签功能
版块:PHP学习相关文章   类型:普通   作者:乐天   查看:13197   回复:0   获赞:16   时间:2015-10-10 12:09:14

  php自带strip_tags函数,可以过滤掉html标签,保留所需标签,但此功能有不足,就是不能过滤掉保留下来的标签的属性,这给xxs漏洞创造了机会,如何处理呢?我写了一段二次过滤标签属性的php bbcode函数:


function BBcode($str, $marks = null) {
	if ($marks === null) {
		global $BBCODEMARKS;
		global $SET_BBCODEMARKS;
		if ($SET_BBCODEMARKS) {
			$marks = $SET_BBCODEMARKS;
		} else {
			$marks = $BBCODEMARKS;
		}
	}
	$str = strip_tags($str, $marks);

	//$htmljsmarks = explode(',', $HTMLJSMARKS);
	$str1len = $str2len = 0;
	if (preg_match_all('/\<(.*?)\>/', $str, $match)) {
		//print_r($match);
		foreach ($match as $value) {
			foreach ($value as $value2) {
				//print_r($value2);
				$value2 = htmlspecialchars(strtolower($value2));
				$str1len += strlen($value2);
				$str2len += strlen(preg_replace('/on([a-z]+)=/', '', $value2));
			}
			if ($str1len != $str2len) {
				$str = htmlspecialchars($str);
				break;
			}
		}
	}
	//echo $str1len . " " . $str2len . "<br>";
	return $str;
}

此段函数是从puyuetianPHP开发框架中提出来的,可以过滤掉保留下来的html标签的不合法内容,将其直接转化为html纯文本形式。


此文章为原创文章,转载请注明出处及作者:有天轻论坛(http://www.hadsky.com) & 作者:蒲乐天


有些梦虽然遥不可及,但并不是不可能实现。 
回复列表
默认   热门   正序   倒序
guest
0F
游客Lv0
啊啊啊
 1   2016-02-29 19:55:00  回复
guest
0F
游客Lv0
发射点发生
 2   2016-02-29 09:06:14  回复
guest
0F
游客Lv0







hbc
 2   2016-02-20 03:02:55  回复
guest
0F
游客Lv0
回复 游客 :0101001
 1   2016-02-20 00:39:17  回复
guest
0F
游客Lv0
 1   2016-01-14 15:33:11  回复

回复:【原创文章】PHP实现bbcode安全html标签功能

暂无用户组
退出
等级:0级
天豆:
游客:

公告

近期本站被人为恶意注册及发布垃圾帖,本站已开启普通用户发帖审核功能,VIP系列用户组不受影响,一但发现发布违法或垃圾帖的用户,该用户账号将会被永久封号,请大家共同维护互联网环境,共创美好互联网未来。

永久免费,购授权享豪礼

3年个人版授权+1940天豆仅需194元

终身个人版授权+3880天豆仅需388元

3年尊享版授权+13580天豆仅需1358元

终身尊享版授权+27160天豆仅需2716元

Powered by HadSky 7.9.3

©2015 - 2021 HadSky

购买产品 用户文档 加入QQ群 授权查询 网站绑定 客户案例 陕ICP备13005805号

您的IP:54.158.251.104,2021-12-01 01:22:45,Processed in 0.04088 second(s).

支持原创软件,抵制盗版,共创美好明天!
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(16) 分享
分享

请保存二维码或复制链接进行分享

取消