标签: html-sanitizing

将HTML插入视图

是否可以在AngularJS控制器中创建HTML片段并在视图中显示此HTML?

这需要将不一致的JSON blob转换为嵌套的id : value对列表.因此,HTML是在控制器中创建的,我现在希望显示它.

我创建了一个模型属性,但是如果不打印HTML,则无法在视图中呈现它.


更新

似乎问题来自角度渲染创建的HTML作为引号内的字符串.将试图找到解决这个问题的方法.

示例控制器:

var SomeController = function () {

    this.customHtml = '<ul><li>render me please</li></ul>';
}
Run Code Online (Sandbox Code Playgroud)

示例视图:

<div ng:bind="customHtml"></div>
Run Code Online (Sandbox Code Playgroud)

给:

<div>
    "<ul><li>render me please</li></ul>"
</div>
Run Code Online (Sandbox Code Playgroud)

javascript escaping html-sanitizing angularjs

788
推荐指数
9
解决办法
64万
查看次数

在客户端清理/重写HTML

我需要显示通过跨域请求加载的外部资源,并确保只显示" 安全 "内容.

可以使用Prototype的String#stripScripts删除脚本块.但处理程序如onclickonerror仍在那里.

是否有任何图书馆至少可以

  • 剥离脚本块,
  • 杀死DOM处理程序,
  • 删除黑名单标签(例如:embedobject).

那里有任何与JavaScript相关的链接和示例吗?

html javascript security html-sanitizing

72
推荐指数
7
解决办法
8万
查看次数

处理安全性的最佳方法,并避免使用用户输入的URL进行XSS

我们有一个高安全性应用程序,我们希望允许用户输入其他用户将看到的URL.

这引入了XSS黑客的高风险 - 用户可能会输入另一个用户最终执行的javascript.由于我们持有敏感数据,因此必须永远不会发生这种情况.

处理这个问题的最佳做法是什么?单独的安全白名单或转义模式是否足够好?

有关处理重定向的任何建议(例如,在关注链接之前,警告页面上的"此链接在我们的网站之外"消息)

有没有支持用户输入链接的论据?


澄清:

基本上我们的用户想要输入:

stackoverflow.com

并将其输出给另一个用户:

<a href="http://stackoverflow.com">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)

我真正担心的是他们在XSS黑客中使用它.即他们输入:

警报( '砍死!');

所以其他用户获得此链接:

<a href="alert('hacked!');">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)

我的例子只是解释风险 - 我很清楚javascript和URL是不同的东西,但通过让他们输入后者,他们可能能够执行前者.

你会惊讶于你可以用这个技巧打破多少网站 - HTML更糟糕.如果他们知道处理环节上做到他们也知道消毒<iframe>,<img>并巧妙的CSS参考?

我在高安全性环境中工作 - 单个XSS黑客可能会给我们造成很大的损失.我很高兴我可以制作一个正则表达式(或使用迄今为止的一个很​​好的建议),可以排除我能想到的一切,但这还够吗?

security xss url html-sanitizing

54
推荐指数
3
解决办法
4万
查看次数

如何使用C#来清理html页面上的输入?

是否有库或可接受的方法来清理html页面的输入?

在这种情况下,我有一个只有姓名,电话号码和电子邮件地址的表单.

代码必须是C#.

例如:

"<script src='bobs.js'>John Doe</script>" 应该成为 "John Doe"

c# html-sanitizing antixsslibrary

36
推荐指数
5
解决办法
3万
查看次数

在保留基本格式的同时,我可以使用什么来清理收到的HTML?

这是一个常见的问题,我希望它已经彻底解决了我.

在我正在为客户端做的系统中,我们希望从不受信任的来源(HTML格式的电子邮件和HTML文件)接受HTML,清理它以使其没有任何脚本,指向外部资源的链接以及其他安全性/等等 问题; 然后安全地显示它,同时不丢失基本格式.例如,就像电子邮件客户端使用HTML格式的电子邮件一样,但理想情况下不会重复在该领域中已经发生的347,821错误(到目前为止).:-)

目标是最终通过iframe我们自己的Web界面或通过.Net Windows窗体应用程序中的WebBrowser类(这似乎不安全,可能不那么)向内部用户显示我们感觉舒适的东西,以下示例.

我们认识到其中一些可能会破坏文本的显示; 没关系.

我们将在接收时清理HTML并存储已清理的版本(不要担心存储部分 - SQL注入等 - 我们已经覆盖了这一点).

该软件需要在Windows Server上运行.COM DLL或.Net程序集首选.FOSS显然是首选,但不是交易破坏者.

到目前为止我发现了什么:

  • AntiSamy.Net项目 (但它似乎不再是正在积极开发中,是在主后面的一年-活跃- AntiSamy Java项目).
  • 一些代码来自我们自己的杰夫阿特伍德,大约三年前(哎呀,我不知道他在做什么......).
  • HTML敏捷性包 (通过上面的AntiSamy.Net项目中使用的),这会给我一个健壮的分析器; 然后我可以实现我自己的逻辑来遍历生成的DOM并过滤掉我没有列入白名单的任何内容.敏捷包看起来真的很棒,但我依靠自己的白名单,而不是重复使用某人已经发明的轮子,所以这是对它的反对.
  • 微软反XSS库

你会为这项任务推荐什么?以上之一?别的什么?


例如,我们想删除以下内容:

  • script 分子
  • link,img以及与外部资源相关的此类元素(可能会替换img为"[图像已删除]"或其中一些此类文本)
  • embed,object,applet,audio,video,并尝试创建对象的其他标签
  • onclick 和类似的DOM0事件处理程序脚本代码
  • href关于a触发代码的元素(即使是我们认为可以接受的链接,我们也可能会变成用户必须有意复制并粘贴到浏览器中的明文).
  • __________ (我没有想到的722件事是我想要利用已经存在的东西的原因)

例如,这个HTML:

<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<link rel="stylesheet" type="text/css" …
Run Code Online (Sandbox Code Playgroud)

.net html sanitization html-sanitizing

32
推荐指数
1
解决办法
4380
查看次数

Javascript中的简单HTML清理程序

我正在寻找一个用JavaScript编写的简单HTML清理程序.它不需要100%XSS安全.

我正在我的网站上实现Markdown和WMD Markdown编辑器(来自github的SO主分支).问题是,实时预览中显示的HTML不会被过滤,就像在SO上一样.我正在寻找一个用JavaScript编写的简单/快速HTML清理程序,以便我可以过滤预览窗口的内容.

无需具有完整XSS保护的完整解析器.我不是将输出发送回服务器.在将结果存储到数据库之前,我将Markdown发送到我使用正确的完整HTML清理程序的服务器.

谷歌对我来说绝对没用.我只收到数百条(通常是不正确的)文章,介绍如何从各种服务器端语言的用户生成的HTML中过滤掉javascript.

UPDATE

我会更好地解释为什么我需要这个.我的网站有一个非常类似于StackOverflow上的编辑器.有一个文本区域可以输入MarkDown语法,下面有一个预览窗口,可以显示提交后它的样子.

当用户提交某些内容时,它将以MarkDown格式发送到服务器.服务器将其转换为HTML,然后在其上运行HTML清理程序以清理HTML.MarkDown允许任意HTML,所以我需要清理它.例如,用户输入如下内容:

<script>alert('Boo!');</script>
Run Code Online (Sandbox Code Playgroud)

MarkDown转换器不会触及它,因为它是HTML.HTML清理程序将删除它,以便脚本元素消失.

但这不是预览窗口中发生的情况.预览窗口仅将MarkDown转换为HTML,但不会对其进行清理.因此,预览窗口将具有脚本元素.这意味着预览窗口与服务器上的实际呈现不同.

我想解决这个问题,所以我需要一个快速而又脏的JavaScript HTML清理程序.使用基本元素/属性黑名单和白名单的简单方法就可以了.它不需要是XSS安全的,因为XSS保护是由服务器端的HTML清理程序完成的.

这只是为了确保预览窗口在99.99%的时间内与实际渲染相匹配,这对我来说已经足够了.

你能帮我吗?提前致谢!

html javascript wmd html-sanitizing

28
推荐指数
4
解决办法
7万
查看次数

Angular 2:清理HTML使用div id删除了一些内容 - 这是错误还是功能?

<div [innerHTML]="body"></div>用来将未转义的HTML传递给我的模板,当我传递给body div属性时id,Angular throw:

警告:清理HTML会删除一些内容(请参阅http://g.co/ng/security#xss).警告:清理HTML会删除一些内容(请参阅http://g.co/ng/security#xss).警告:清理HTML会删除一些内容(请参阅http://g.co/ng/security#xss).

看到.plunker

那为什么这么说呢?什么可能是危险iddiv?可能这个bug?

security warnings html-sanitizing angular

23
推荐指数
3
解决办法
3万
查看次数

HTML Sanitizer for .NET

我正在开始一个使用asp.net mvc公开面对的项目.我知道那里有大约十亿个php,python和ruby html清洁剂,但有没有人对.net中的任何好东西都有一些指示?你对那里的经历有什么经验?我知道stackoverflow是一个在asp.net中完成的站点,允许自由格式HTML,它使用什么?

.net asp.net html-sanitizing

20
推荐指数
2
解决办法
2万
查看次数

Java:Owasp AntiSamy vs Owasp-java-html-sanitize

我现在正在寻找html净化器库.而且我发现有两个"owasp"库.首先是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project.

我的问题是 - 比较它们时的利弊是什么.

java html-sanitizing owasp

10
推荐指数
1
解决办法
5836
查看次数

JS库清理用户获取的数据?

所以我使用nodejs来写这个网站.现在这个页面上有一个小聊天论坛,可以打开各种js,html等注入.只是想知道你们是否知道一个js脚本/库可以清理我从用户那里得到的数据?

html javascript xss html-sanitizing node.js

9
推荐指数
1
解决办法
2万
查看次数