[字号:  ]

使用所见即所得编辑器,大家是怎么处理提交的带有html或者js的数据保证安全的呢?

发布时间:2008-9-06 23:26   作者: 阿辛   信息来源: PHPChina 开源社区门户
我看看很多cms,或者网站,比如chinaz、cnbeta有匿名投稿功能,然后投稿用的就是所见即所得编辑器

那么编辑器里面还有直接写html的功能,如果有人插入js调用,或者不闭合的html等等的话,提交数据之后怎么处理比较好?不然很危险啊。


像处理一般的表单提交么可以用htmlspecialchars()之类的过滤html标签。但是这样最后输出是把html标签都显示出来了。所见即所得就失去了意义。


本想自己研究下那些cms怎么处理,但是看源代码看的头晕,不知所措 :(

望能给个思路或者解决方案。谢谢。

[ 本帖最后由 阿辛 于 2008-9-6 23:27 编辑 ]

最新回复

Fising at 2008-9-06 23:30:21
先转成类似这样的" ",存入数据库。

读取的时候,先读出来,显示之前,再转回来。
Fising at 2008-9-06 23:31:36
我始终不太明白htmlspecialchars()与strip_tags()到底该什么时候用,呵呵
阿辛 at 2008-9-06 23:57:38

QUOTE:

原帖由 fising 于 2008-9-6 23:30 发表
先转成类似这样的" ",存入数据库。

读取的时候,先读出来,显示之前,再转回来。
晕死,引号内是啥啊?

不管转成啥,显示的时候转回来还不是一样执行了?

比如我插入

CODE:

<script type="text/javascript">
alert("哎哟");
alert("哎哟");
alert("哎哟");
</script>
<script type="text/javascript">
alert("哎哟");
alert("哎哟");
alert("哎哟");
</script>

那要是最后显示出来也这代码,岂不是看网页的人都要点三次alert窗口?

如果是坏蛋,直接调用别的服务器上的带病毒的js,岂不是就让访问该页的人都中了?
阿辛 at 2008-9-06 23:59:14
discuz的真好哦,不知道怎么处理的?

<strong>测试</strong>
kindge at 2008-9-07 00:01:47
可以屏蔽掉<script><iframe>等有害标签~
留下一些常用的,如<a><b><i> 就可以咯
kindge at 2008-9-07 00:02:06
可以过滤掉<script><iframe>等有害标签~
留下一些常用的,如<a><b><i> 就可以咯
于安 at 2008-9-07 00:14:00
html会有人给你用jS??

过滤掉它..
xiaochong0302 at 2008-9-07 10:54:11

QUOTE:

原帖由 阿辛 于 2008-9-6 23:59 发表
discuz的真好哦,不知道怎么处理的?

测试
dz 用的是ubb
比如www.aaaaaaa.com   会用正则替换成HTML的URL
beeflj at 2008-9-07 11:12:05
同意7楼做法
阿辛 at 2008-9-07 11:29:50
谢谢啊,现在有点思路了

如果和discuz这样弄ubb的所见即所得,好像还没开源的源代码用,直接诶挖么又太麻烦。

用fck这样的,提交了过滤掉<script><iframe>等标签就行了。