首页 > 代码库 > cms及展示页标签过滤

cms及展示页标签过滤

cms系统是用户可以编写内容的系统,通过内容填充的方式展现。

一般的cms是通过富文本编辑器来编辑,编辑器通常都会有一些过滤功能。

如果要实现简单的过滤,比如防止用户写一个<script> alert(‘你是猪‘) </script>之类的,

  ——js可以通过encode来过滤,将标签转义;

  ——velovity可以通过html()函数来转为string;

就这样~ 

——————————————————————————————————————————

还有一种问题:标签未封闭

比如 某个页面中间要放一段从后台抓取的代码,填充到当前页面中。

可是这个代码不完整,没有标签封闭。如有开头<div>没有结尾的</div>,就会导致那个页面后面的结构全部乱掉。

解决方法

  ——如果使用js从后台掉接口放数据,那页面其他的html结构已经渲染好了,数据里的标签不完整不会影响到后面的html结构

      ——如果用velocity来抓取,那就是片段的拼接了,会影响到后面的html结构。那可以用一个冷门的html标签

    (http://www.w3school.com.cn/tags/index.asp) 如<ins>。在后台数据的前后放这个标签,只要数据里没有ins,整个数据就一定会被<ins></ins>包围。

cms及展示页标签过滤