问题标签 [angular-dom-sanitizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 如何创建可信 URL 的全局白名单?
我想为安全 URL 实现一个全局白名单功能,以绕过 Angular 2 中的资源 URL,类似于 AngularJS 通过其 $sceDelegateProvider 提供的功能,如此处所述
我曾尝试参考 Angular 文档,但似乎找不到任何帮助。
javascript - 为什么 document.getElementByID 返回 null?
目标:将变量从 Angular 应用程序发送到该页面上的 iFrame,但位于另一台服务器上
问题:为什么 document.getElementById 返回 null?我是在错误地使用 DomSanitizer 还是错误地使用了 postMessage?
(我试过的)
我把它放在 ngAfterViewInit 里面,所以它应该在正确的时间访问它
DevConsole错误显示:错误:资源 URL 上下文中使用的不安全值(请参阅http://g.co/ng/security#xss)
- 我阅读了它提到的文章(http://g.co/ng/security#xss)并应用了 DomSanitization SafeScript 返回一个值,这让我觉得我正确使用了 DomSanitizer。
然后我阅读(https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#Security_concerns)并确保检查 event.origin
角(本地主机:4200)
chat.component.html:
chat.component.ts:
聊天框.aspx(本地主机:7078):
angular - 为什么 DomSanitizer 不适用于字符串值?
目标:将字符串变量从 Angular 应用程序(typesript)发送到位于另一台服务器上的 iFrame,以便它可以在有条件的情况下使用
问题:如何专门将 DomSanitizer 用于变量?
文档状态类型为:HTML、样式、脚本、网址。如果我只想发送一个纯字符串变量怎么办?文档对此并不清楚。
SecurityContext 显示相同的https://angular.io/api/core/SecurityContext。我试过脚本。我也尝试过清理方法,但它需要安全上下文。
我尝试使用脚本,但出现错误:错误:DomSanitizerImpl.push../node_modules/@angular/platform-的资源 URL 上下文中使用的不安全值(请参阅http://g.co/ng/security#xss )浏览器/fesm5/platform-browser.js.DomSanitizerImpl.sanitize
我阅读了(http://g.co/ng/security#xss)和(https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#Security_concerns)以及其他文章关于 domsanitizer、postmessage、Angular 生命周期等,我尝试将代码放在文件的不同区域,包括 onload 等。
聊天组件.html:
聊天组件.ts:
当我添加以下内容时,出现错误:无法读取 null 的属性“contentWindow”
angular - Angular:防止 DomSanizer 更新 DOM 事件
我面临一个问题DomSanitizer
。
我创建了一个StackBlitz来复制这个问题。
每次单击按钮时,都会重新加载 iframe A。该按钮完全没有任何作用 - 所以它与 iframe 无关。
iframe A 对其源具有动态引用。为了完成这项工作,我使用DomSanitizer
.
iframe B 有一个静态引用,这里没有重新加载 - 这是我的预期。只是为了表明它与消毒剂有关。
所以我需要在我的应用程序中有一个 iframe,它的内容应该取决于应用程序的状态(一些输入)。如果情况发生变化,那么重新加载就可以了。
但我不能接受每次单击与 iframe 无关的按钮时重新加载。
我该如何处理?感谢您的支持!
angular - 如何测试依赖于 DomSanitizer 的 Pipe?
Angular 版本:8.1.2
测试工具:Karma 和 Jasmine,由预先安装ng new
我目前正在从事我的第一个 Angular 项目。作为其中的一部分,我创建了一个调用DomSanitizer.bypassSecurityTrustResourceUrl
. 我这样做是为了能够在 iframe 中使用它们。我现在想为此管道实施测试。这是它的代码:
自动生成的规范文件看起来像这样:
在我运行测试之前,VSCode 告诉我这行不通,因为SafeResourceUrlPipe
' 的构造函数需要一个参数。到目前为止一切顺利,但我不知道现在该怎么办。我不能只使用new DomSanitizer
,因为它是一个抽象类。
我尝试的是创建一个实现 DomSanitizer 的模拟类,但是我只能测试是否创建了管道,而且我之前已经知道了。我想测试的是它是否正确地完成了转换输入的工作,但是当我伪实现主要依赖项时,我几乎无法测试它。
我已经对此进行了一些谷歌搜索,我怀疑它会变得很明显,但我找不到它。
angular6 - domsanitizer 提供安全的 html 内容,但锚标记在清理后不可点击
我DomSanitizer
在 Angular 6 中使用。我想清理包含iframes
超链接视频内容等的内容。清理后,我得到了所有内容,它的锚标签现在不可点击。请帮我解决这个问题。
我也尝试过这样的事情
此内容中的锚链接应该是可点击的。
html - Angular Dom Sanitizer HTML 无法复制文本
我使用 DomSanitizer 从数据库中清理我的 HTML 内容以显示在页面上。
safeHtml 在哪里:
它工作完美。但是我注意到在网页上显示时无法选择或复制此文本。否则,可以正常复制或选择正常字符串字段中显示的文本。