富文本编辑器是黑客进行`xss`攻击的一个重要入口,因此不得不引起重视。本文就给出一个wangEditor编辑器在前端进行`xss`过滤的解决方案。
----
首先,编辑器本身将默认过滤在编辑源码模式下,用户输入的`<script>`标签,当然这是一个最基础的过滤手段。(如果你想关闭这个过滤,[点击这里](http://www.kancloud.cn/wangfupeng/wangeditor2/113983))
----
接下来,针对更加高级、复杂的`xss`过滤,我们可以借用一个工具——http://jsxss.com/zh/index.html ,毕竟『术业有专攻』,还是用专业搞这项工作的库,比较靠谱。
如何下载使用,可参见它的官方网站。它的`API`很简单,网站首页就有一个样例,如下:
```html
<!--引入 xss.js 文件-->
<script src="https://raw.github.com/leizongmin/js-xss/master/dist/xss.js"></script>
<script>
// 通过一个全局的 filterXSS 函数来过滤
console.log(filterXSS('<a href="#" onclick="alert(/xss/)">click me</a>'));
</scsript>
```
----
下面写一个完整的示例
```html
<div id="div1">
<p>请输入内容...</p>
</div>
<button id="btn1">获取内容</button>
<!--这里引用jquery-->
<!--这里引用wangEditor.js-->
<!--这里引用xss.js-->
<script type="text/javascript">
var editor = new wangEditor('div1');
editor.create();
$('#btn1').click(function () {
// 获取编辑器区域完整html代码
var html = editor.$txt.html();
// 过滤 xss 攻击
html = filterXSS(html);
// 接下来便可保存数据...
// .....
});
```
- 关于wangEditor
- 遇到问题如何解决和提问【重要】
- 开始使用
- 下载
- 创建页面
- 生成编辑器(使用ID)
- 生成编辑器(使用element)
- 调整尺寸
- 销毁与恢复
- 一个页面多个编辑器
- 内容处理
- 初始化内容
- 获取内容
- 追加内容
- 清空内容
- 用 editor.$txt 做其他内容处理
- onchange事件
- 禁用/启用
- 参数配置
- 自定义菜单
- 自定义颜色、字体、字号
- 自定义表情
- 切换语言
- 百度地图key
- 菜单栏吸顶
- 配置全屏的z-index
- 关闭浏览器打印log
- 关闭过滤javascript
- 关闭粘贴过滤样式
- 只粘贴纯文本
- 插入代码-配置默认语言
- 自定义编辑器样式
- 自定义颜色
- 自定义菜单UI
- 自定义表格、引用、代码的样式
- 代码高亮样式
- 图片上传
- 使用前必读
- 支持情况
- 配置说明
- log提示辅助排错
- 后台代码示例
- C#
- java - 例1
- java - 例2
- php
- nodejs
- python
- 自定义上传事件
- 集成plupload插件
- 集成七牛云存储
- 跨域上传
- 上传图片出错时的解决步骤
- 使用模块定义
- 使用require.js
- 使用seajs
- 使用webpack
- 插件开发
- 对象结构
- 常用API
- 全局API
- 对象API
- 基础API
- 选区API
- 命令API
- 扩展一个菜单
- 『缩进』菜单
- 『行高』菜单
- 『插入符号』菜单
- 开发一个插件
- 常见问题
- 关于markdown
- 关于上传附件
- 关于背景图片
- 关于显示压缩图片
- 集成到React
- 集成到angular
- 集成到vue.js
- 如何避免与项目中的css冲突
- xss过滤
- 如何插入视频链接
- 关于mobile端编辑器
- 查看源码第一行有空格