是否可以在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) 我需要显示通过跨域请求加载的外部资源,并确保只显示" 安全 "内容.
可以使用Prototype的String#stripScripts删除脚本块.但处理程序如onclick
或onerror
仍在那里.
是否有任何图书馆至少可以
embed
或object
).那里有任何与JavaScript相关的链接和示例吗?
我们有一个高安全性应用程序,我们希望允许用户输入其他用户将看到的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黑客可能会给我们造成很大的损失.我很高兴我可以制作一个正则表达式(或使用迄今为止的一个很好的建议),可以排除我能想到的一切,但这还够吗?
是否有库或可接受的方法来清理html页面的输入?
在这种情况下,我有一个只有姓名,电话号码和电子邮件地址的表单.
代码必须是C#.
例如:
"<script src='bobs.js'>John Doe</script>"
应该成为 "John Doe"
这是一个常见的问题,我希望它已经彻底解决了我.
在我正在为客户端做的系统中,我们希望从不受信任的来源(HTML格式的电子邮件和HTML文件)接受HTML,清理它以使其没有任何脚本,指向外部资源的链接以及其他安全性/等等 问题; 然后安全地显示它,同时不丢失基本格式.例如,就像电子邮件客户端使用HTML格式的电子邮件一样,但理想情况下不会重复在该领域中已经发生的347,821错误(到目前为止).:-)
目标是最终通过iframe
我们自己的Web界面或通过.Net Windows窗体应用程序中的WebBrowser类(这似乎不安全,可能不那么)向内部用户显示我们感觉舒适的东西,以下示例.
我们认识到其中一些可能会破坏文本的显示; 没关系.
我们将在接收时清理HTML并存储已清理的版本(不要担心存储部分 - SQL注入等 - 我们已经覆盖了这一点).
该软件需要在Windows Server上运行.COM DLL或.Net程序集首选.FOSS显然是首选,但不是交易破坏者.
到目前为止我发现了什么:
你会为这项任务推荐什么?以上之一?别的什么?
例如,我们想删除以下内容:
script
分子link
,img
以及与外部资源相关的此类元素(可能会替换img
为"[图像已删除]"或其中一些此类文本)embed
,object
,applet
,audio
,video
,并尝试创建对象的其他标签onclick
和类似的DOM0事件处理程序脚本代码href
关于a
触发代码的元素(即使是我们认为可以接受的链接,我们也可能会变成用户必须有意复制并粘贴到浏览器中的明文).例如,这个HTML:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<link rel="stylesheet" type="text/css" …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个用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%的时间内与实际渲染相匹配,这对我来说已经足够了.
你能帮我吗?提前致谢!
我<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).
那为什么这么说呢?什么可能是危险id
的div
?可能这个bug?
我正在开始一个使用asp.net mvc公开面对的项目.我知道那里有大约十亿个php,python和ruby html清洁剂,但有没有人对.net中的任何好东西都有一些指示?你对那里的经历有什么经验?我知道stackoverflow是一个在asp.net中完成的站点,允许自由格式HTML,它使用什么?
我现在正在寻找html净化器库.而且我发现有两个"owasp"库.首先是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project.
我的问题是 - 比较它们时的利弊是什么.
所以我使用nodejs来写这个网站.现在这个页面上有一个小聊天论坛,可以打开各种js,html等注入.只是想知道你们是否知道一个js脚本/库可以清理我从用户那里得到的数据?