当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

DOMPurify

XSS 清理程序
授权协议 Apache
开发语言 JavaScript HTML/CSS
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 不详
投 递 者 包唯
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

DOMPurify 是用于 HTML、MathML 和 SVG 的纯 DOM、超快、超容忍 XSS 清理程序。

DOMPurify 是用 JavaScript 编写的,适用于所有现代浏览器(Safari (10+)、Opera (15+)、Internet Explorer (10+)、Edge、Firefox 和 Chrome - 以及几乎所有使用 Blink 或 WebKit 的其他浏览器)。它不会在 MSIE6 或其他旧浏览器上出现故障。它要么使用回退机制,要么干脆什么都不做。

DOMPurify 对 HTML 进行净化处理,防止 XSS 攻击。你可以给 DOMPurify 提供一个受污染的 HTML 的字符串,它将返回一个包含干净 HTML 的字符串(除非另行配置)。DOMPurify 将剥离所有包含危险 HTML 的内容,从而防止 XSS 攻击和其他有害的东西,且效率很快。开发团队使用浏览器提供的技术,并把它们变成一个 XSS 过滤器。你的浏览器越快,DOMPurify 就越快。

DOMPurify.sanitize('<img src=x onerror=alert(1)//>'); // becomes <img src="x">
DOMPurify.sanitize('<svg><g/onload=alert(2)//<p>'); // becomes <svg><g></g></svg>
DOMPurify.sanitize('<p>abc<iframe//src=jAva&Tab;script:alert(3)>def</p>'); // becomes <p>abc</p>
DOMPurify.sanitize('<math><mi//xlink:href="data:x,<script>alert(4)</script>">'); // becomes <math><mi></mi></math>
DOMPurify.sanitize('<TABLE><tr><td>HELLO</tr></TABL>'); // becomes <table><tbody><tr><td>HELLO</td></tr></tbody></table>
DOMPurify.sanitize('<UL><li><A HREF=//google.com>click</UL>'); // becomes <ul><li><a href="//google.com">click</a></li></ul>

DOMPurify 目前支持 HTML5、SVG 和 MathML。DOMPurify 默认允许 CSS、HTML 自定义数据属性。DOMPurify 也支持 Shadow DOM--并递归地对 DOM 模板进行清理。DOMPurify 还允许你对使用 jQuery $() 和 elm.html()API 的 HTML 进行清理,没有任何已知问题。

DOMPurify 为旧的 MSIE 浏览器提供了一个 fall-back 行为。它使用仅适用于 MSIE 的 toStaticHTML 功能来进行净化。但是请注意,在这种回退模式下,下面的配置标志几乎没有任何作用。你需要自己来处理这个问题。

如果连 toStaticHTML 都不支持,DOMPurify 根本就不会做什么。它只是简单地返回你给它的字符串。

DOMPurify 还公开了一个名为 isSupported 的属性,它开源告诉你 DOMPurify 是否能够完成它的工作。

  • es6 使用 cure53/DOMPurify 来防止xss 攻击 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X

  • 场景 用户输入在后台是使用之前是要过滤的 cure53/DOMPurify github 地址 cdn地址 推荐理由 上手容易,操作非常简单 var clean = DOMPurify.sanitize(dirty, {SAFE_FOR_JQUERY: true}); 快 The faster your browser, the faster DOMPurify will be

 相关资料
  • Clean,清理。把未跟踪的文件清理掉。 练习 1,在项目下面新建一个文件,名字是 demo.md。 touch demo.md 然后查看状态,会返回: On branch master Untracked files: (use "git add <file>..." to include in what will be committed) demo.md nothing a

  • 对于以前的光盘一般都是用批处理来达到安装完相应的软件而清理掉的效果! 但可以看出用 NSIS 同样也可以实现。 当然也可以参考集成光盘安装时产生的垃圾简易清理器(批处理) http://dreams8.com/viewthread.php?tid=789 其实批处理都能实现的,但用NSIS打包一下是不是更酷呢? 引用脚本的内容: ; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 ;

  • 虽然浮动可以便于页面布局,但同时会产生一些问题,也就是常说的副作用。浮动元素最常见的缺陷是:父元素的高度塌陷和影响兄弟元素的位置。 首先,看看父元素的高度塌陷。假设有一个容器,其中两个子元素,一个子元素向左浮动,一个子元素向右浮动。代码如下: .wrapper {     border: 2px dashed #ccc; } .wrapper > div {     width: 80px;  

  • 主要内容:Jsoup 清理HTML 语法,Jsoup 清理HTML 说明,Jsoup 清理HTML 示例以下示例将展示 XSS 攻击或跨站点脚本攻击的预防。 Jsoup 清理HTML 语法 Jsoup : 解析给定 HTML 字符串的主类。 html : 初始 HTML 字符串。 safeHtml : 清理过的 HTML。 Whitelist : 提供默认配置以保护 html 的对象。 clean() : 使用白名单清理 html。 Jsoup 清理HTML 说明 Jsoup 对象使用白名单配置

  • 清理 Node 节点 停相关进程: $ sudo systemctl stop kubelet kube-proxy flanneld docker $ 清理文件: $ # umount kubelet 挂载的目录 $ mount | grep '/var/lib/kubelet'| awk '{print $3}'|xargs sudo umount $ # 删除 kubelet 工作目录 $

  • TCPServer.bind_sockets()会返回一个socket对象的列表,列表中的socket都是用来监听客户端连接的。 列表由TCPServer.add_sockets()处理。在这个函数里我们就会看到IOLoop相关的东西。 def add_sockets(self, sockets): if self.io_loop is None: self.io_loo

  • 问题内容: 我正在尝试将CS​​V文件读入(字符串的)列表列表,将其传递以从数据库中获取一些数据,构建新数据列表的新列表,然后传递该列表列表,以便写入新的CSV文件。我到处都看了,似乎找不到如何做的例子。 我宁愿不使用简单的数组,因为文件的大小会有所不同,而且我也不知道该如何使用数组的尺寸。我没有处理文件的问题。我只是不确定如何处理列表列表。 我发现的大多数示例都将创建多维数组或在从文件中读取数据

  • 本文向大家介绍利用python程序帮大家清理windows垃圾,包括了利用python程序帮大家清理windows垃圾的使用技巧和注意事项,需要的朋友参考一下 前言 大家应该都有所体会,在windows系统使用久了就会产生一些“垃圾”文件。这些文件有的是程序的临时文件,有的是操作记录或日志等。垃圾随着时间越积越多,导致可用空间减少,文件碎片过多,使得系统的运行速度受到一定影响。 而Mac系统和Li