在平时的开发中,有时需要引入富文本编辑器,由用户来输入信息并保存入数据库。而这也给项目留下了潜在的隐患,如果不在开发时就做好防范,则很容易受到相应的攻击。
对于常见的web安全问题,可以参考 web安全(入门篇)

现在针对富文本编辑器如何防止xss攻击,给出几点建议,也供自己以后查找:

  • 推荐使用UEditor

  • 使用ESAPI


推荐使用UEditor

在多个项目中使用了UEditor,在使用上比较顺手,而且它一直在更新维护,最重要的是它注重修复其潜在的xss漏洞。这将有效的防止xss攻击。

使用ESAPI

针对不同的开发语言,ESAPI有多个不同版本相对应。比如Java,PHP,.NET,Python,Classic ASP,Cold Fusion,Node

以node为例

node-esapi is a minimal port of the ESAPI4JS (Enterprise Security API for JavaScript) encoder.

-Installation

$ npm install node-esapi

-Usage

var ESAPI = require('node-esapi');
ESAPI.encoder().encodeForHTML('<p>This is a test</p>');

-Encoder Functions

The encoder() returns an object with the following main functions:

encodeForHTML
encodeForCSS
encodeForJS = encodeForJavaScript = encodeForJavascript
encodeForURL
encodeForHTMLAttribute
encodeForBase64

-Middleware

The ESAPI has a function for creating express middleware to serve client side scripts of ESAPI.

app.use(ESAPI.middleware());// Now in your HTML you can do
<script src="/esapi/esapi.js"></script>
<script src="/esapi/resources/i18n/ESAPI_Standard_en_US.properties.js"></script>
<script src="/esapi/resources/Base.esapi.properties.js"></script>
<script>org.owasp.esapi.ESAPI.initialize();//Here you have access to the $ESAPI object and can do$ESAPI.encoder().encodeForHTML('<p>This is a test</p>');
</script>

node防xss还有一个可选用的插件 –xss

-安装
NPM

$ npm install xss

Bower

$ bower install xss

或者

$ bower install https://github.com/leizongmin/js-xss.git

-使用方法
-在Node.js中使用

var xss = require('xss');
var html = xss('<script>alert("xss");</script>');
console.log(html);

-在浏览器端使用
Shim模式(参考文件 test/test.html):

<script src="https://raw.github.com/leizongmin/js-xss/master/dist/xss.js"></script>
<script>
// 使用函数名 filterXSS,用法一样var html = filterXSS('<script>alert("xss");</scr' + 'ipt>');alert(html);
</script>

AMD模式(参考文件 test/test_amd.html):

<script>require.config({baseUrl: './',paths: {xss: 'https://raw.github.com/leizongmin/js-xss/master/dist/xss.js'},shim: {xss: {exports: 'filterXSS'}}});require(['xss'], function (xss) {var html = xss('<script>alert("xss");</scr' + 'ipt>');alert(html);});
</script>

富文本编辑器防xss攻击相关推荐

  1. 防Xss攻击,包含富文本编辑器的处理

    为什么80%的码农都做不了架构师?>>>    众所周知,让用户在富文本编辑器中进行自己的输入绝对不是一个明智的选择,但是有的时候又没有办法,所以只有一条原则来保证系统的安全性,那就 ...

  2. 富文本编辑器、日期选择器、软件天堂、防止XSS攻击、字体icon、转pdf

    [超好用的日期选择器] Layui:http://www.layui.com/laydate/ 备注:日期选择器,用过很多很多,自己也写过一些:相信这个简单而又不简单的选择器,能够给你多些美好的时光 ...

  3. tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》

    版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/qq_23375733/article/details/86606630 如题:tp5怎么防sql注入 ...

  4. django项目中使用KindEditor富文本编辑器

    先从官网下载插件,放在static文件下 前端引入 学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687 有任何不懂的都可以在里面交流,还有很好的视频教 ...

  5. php去除编辑器html标签,js处理富文本编辑器转义、去除转义、去除HTML标签

    富文本编辑器生成的HTML标签,进行转义,然后写入数据库,防止脚本注入: function htmlEncode(value){ return $(' } 从数据库拿出的转义后的HTML标签内容,先得 ...

  6. 富文本编辑器 数据 转义 简单 高效

    为什么转义? 起因是在工作中,使用到了富文本编辑器,我们都知道,富文本编辑器的数据是包含html标签的,类似如下图: 这时候如果保存数据到后台,就会触发XSS攻击,导致请求失败. 检查完毕,发现是被X ...

  7. 富文本存储型XSS的模糊测试之道

    富文本存储型XSS的模糊测试之道 凭借黑吧安全网漏洞报告平台的公开案例数据,我们足以管中窥豹,跨站脚本漏洞(Cross-site Script)仍是不少企业在业务安全风险排查和修复过程中需要对抗的&q ...

  8. 解决百度ueditor富文本编辑器不能插入视频的问题/src掉链/src清空,不能显示视频

    如果你嫌弃自己配置比较麻烦,出现各种奇奇怪怪的问题你下载我  这个文件  加入到你的项中, 只  需要  修改 项目名称  就可以 运行  地址 https://download.csdn.net/d ...

  9. 2021 年 React 的 5 大富文本编辑器

    5大富文本编辑器 今天,富文本编辑器被用于许多应用中,包括简单的博客和复杂的内容管理系统.然而,选择一个并不容易,因为有很多具有不同功能的编辑器. 因此,在这篇文章中,我将评估5个React的富文本编 ...

  10. 几款常用的富文本编辑器总结

    导航 百度富文本编辑器(UEditor) 基本demo 基本API 拓展相关 注意事项 Summernote 基本demo 基本api 扩展相关 Froala 基本demo 基本api 扩展相关 注意 ...

最新文章

  1. DNS tunnel的原理及实战
  2. Zabbix监控详解
  3. Codeforces Round #375 (Div. 2) D. Lakes in Berland 并查集
  4. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数
  5. 京东AI研究院何晓冬:将先进的技术和模型落地到产业
  6. 阮一峰react demo代码研究的学习笔记 - demo10 debug
  7. tea 加密密钥生成_加密密钥生成需要的是熵的良好来源
  8. Eclipse调字体
  9. C#自定义规则对比两个集合的对象是否相等
  10. Linux管理员常用网络资源(收集帖)
  11. TED如何掌控你的时间(第二天)
  12. 计算空间中点到直线的距离
  13. libtorrent源码分析(四)LSD实现
  14. AtCoder Beginner Contest 158 D.String Formation
  15. mindmanager2020许可密钥永久激活破解安装教程非破解手机版下载
  16. Python - 随机生成英文字母
  17. 无法清除计算机的主dns,无法清除DNS缓存的解决办法
  18. 大学——留德的路01
  19. Android性能测试 之 APPFPS的方法
  20. linux sysctl常见用法

热门文章

  1. 数学建模算法与应用习题 1-4 解析 MATLAB 换一下思路做题
  2. IBM heapAnalyzer分析dump文件
  3. 中了勒索病毒之后怎么办-亲身经历(2021.8)
  4. 基于ssm医院病历管理系统
  5. 1、登录模块测试用例
  6. 关于FlyMcu和XCOM软件下载程序的使用(关于STM32F4实现串口通信后续)
  7. NUC980 DIY项目大挑战 - EtherCAT实现
  8. 网抑云音乐.ncm加密格式转换mp3
  9. matlab Kmeans算法
  10. matlab高等数学实验答案,MATLAB高等数学实验-(第2版)