HDWiki4.0.5标签Tags过滤危险网页代码修复办法

环境:HDWiki4.0.5
描述:标签中的内容在被服务端“处理”时候没有被严格过滤(有一层关键字过滤),不过内容在发送到服务器前被客户端的js处理过,原版编辑器模板并没有正常使用上的问题。

前几天为HDWiki换个编辑器问题就出来了,由于偶的编辑器页面没有js处理,导致发送到服务器的Tags中的网页标签代码也被存储啦,然后查看词条页面的时候,就看到发送的网页代码效果了。

修复办法:打开control目录下的doc.php,找到
大概在178和315行

$doc[‘tags’]=$_ENV[‘doc’]->replace_danger_word($doc[‘tags’]);

修改为

$doc[‘tags’]=strip_tags($_ENV[‘doc’]->replace_danger_word($doc[‘tags’]));

即可。
同时建议把标题Title也进行同样的“过滤”(不过代码在Title里是没有太大危险性的,因为Title已经在服务端进行了转换处理)!

最后感谢“风吹过的夏天”同学的问题纠结和热心帮助。。

附注:PHP strip_tags函数说明
strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。

strip_tags(string,allow)
参数 描述
string 必需。规定要检查的字符串。
allow 可选。规定允许的标签。这些标签不会被删除。

注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。

参考:PHP strip_tags() 函数

Leave a Reply

Your email address will not be published. Required fields are marked *