富文本編輯器是黑客進行`xss`攻擊的一個重要入口,因此不得不引起重視。本文就給出一個wangEditor編輯器在前端進行`xss`過濾的解決方案。
----
首先,編輯器本身將默認過濾在編輯源碼模式下,用戶輸入的`<script>`標簽,當然這是一個最基礎的過濾手段。(如果你想關閉這個過濾,[點擊這里](http://www.hmoore.net/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端編輯器
- 查看源碼第一行有空格