使用白名单安全地剥离javascript中的html标签
securely strip html tags in javascript with whitelist
我想从javascript中的字符串中剥离几乎所有的html标记,只允许使用一些基本标记
(并剥离其属性)以防止跨站点脚本。
很多人说,这不应该用javascript来完成,因为客户端可能禁用了javascript,导致过滤器崩溃。然而,我的整个项目都依赖于javascript,并且任何禁用javascript的客户端都不会看到输出,而且我无法在服务器端完成
(1) 在这种情况下,我认为这可能是安全的吗?
bobince建议使用DOM(而不是RegEx)来过滤潜在的不安全输入。我当然不是XSS专家,但因为他的例子取决于在过滤器完成他的工作之前插入DOM的字符串,我可以想象它可能是不安全的,因为类似于:
var unsecureString = '<img src=".." onload="alert(''bad'')" />';
$('#alice').update(unsecureString);
filterNodes($('#alice'), {p:[],a:['href']}); // see link above
(2) 我可以肯定的是,上面的坏事件永远不会发生吗?
(3) 如果不是:如何避免这样的问题,但仍然使用DOM?
看看谷歌caja消毒液。
https://code.google.com/p/google-caja/wiki/JsHtmlSanitizer
相关文章:
- 如何在JavaScript中剥离数组元素中的非整数
- Javascript从字符串中剥离所有url参数
- 从javascript对象中剥离方法
- 如何在 javascript 中剥离 ipv6 地址
- 在javascript变量中剥离部分HTML内容
- 如何在javascript数组中剥离字符串的一部分
- document.body.innerHTML 在 IE 中剥离 JavaScript - bug
- 从其他字符串中剥离字符串,如果它以它使用 JavaScript 开头
- 有没有办法从 PHP 中的字符串中剥离所有 JavaScript
- JavaScript:去除元数据中的URL,而不剥离所有字符串中的空格
- 从字符串中剥离 javascript unicode 字符 8206
- 使用 Javascript 从 API 响应中剥离 @
- 使用白名单安全地剥离javascript中的html标签
- 获取dust.js以剥离JavaScript注释
- 有没有一种快速的工具可以在不剥离JavaScript源代码中的注释的情况下执行恒定的替换?
- 当允许自定义页眉和页脚时,我们应该剥离JavaScript吗?
- 如何在构建HTML时剥离JavaScript代码?
- 在django模板中呈现之前剥离javascript代码
- 用JavaScript从HTML DOM树中剥离JavaScript
- 在PHP上剥离javascript的regex