问题标签 [angular-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 - 如何检查带有 iframe 的 html 是否安全?
我从可能包含来自以下服务的嵌入式视频的 html 代码的 API 字符串中获取:
- youtube.com,
- vimeo.com,
- dailymotion.com,
- prezi.com
如果我确定它足够安全,我可以将它们转换为受信任的 SafeHtml(绕过 Angular 的消毒剂):
然后将它放在这样的页面上:
问题:
我必须执行哪些检查以确保该字符串足够安全?(它不包含嵌入式脚本,并且只指向这四个站点之一,没有任何棘手的重定向)?
以某种方式将这些站点添加到 Angular 的消毒剂的例外中是否有意义?如果是,该怎么做?
提前致谢!
ps 我看到了类似的问题:如何检查 HTML 字符串是否安全? 但我希望有一些更新鲜和与 Angular 最佳实践相关的东西
javascript - 翻译时在角度js中显示样式标签
这是我的控制器文件,其中
我的 *.resx 文件包含
在我的定义中,HTML
我定义了以下内容:
但最终,风格并没有兑现。显示类似
微标签是MicroTag
任何指针?
javascript - 创建 AngularJs 元素时强制转义字符的问题
我偶然发现了 AngularJS 和元素创建的问题。简而言之:我需要创建一个包含 html 内容的元素,但我确实希望手头有对该元素的引用,这样我就可以对其执行一些操作,而无需在浏览器中实际呈现它。
我尝试执行以下操作:
哪种方法可以解决问题,但是...其中一些模板具有逻辑表达式。例如:
不幸的是,似乎当我尝试创建这样一个元素时,无论我是否使用$sce.trustAsHtml()
这些条件ng-bind-html
中的&
字符都被转义为&
. 我在模板中得到的 html 如下所示:
请看一下小提琴:https ://jsfiddle.net/3uxdrp7b/1/
如果这是一个已知问题 - 我会很感激你指出我正确的方向,因为我一直在努力解决这个问题,但我无法让它发挥作用。我查看的每个示例在绑定中都有一个简单的 html - 除非我使用 cursed ,否则一切正常&
。
angularjs - 为什么 Angular 的 $sanitize 不允许输入和按钮元素?
我有一个关于 angular-sanitize($sanitize)[1] 的问题。为什么它不允许输入和按钮元素?
示例代码:
我查看了代码,发现有硬编码的有效元素 [2]。我的问题更多关于“为什么他们将它们视为有害元素”
谢谢!
[1] - https://github.com/angular/angular.js/blob/0822d34b10ea0371c260c80a1486a4d508ea5a91/src/ngSanitize/sanitize.js#L1 [2] - https://github.com/angular/angular.js/blob /0822d34b10ea0371c260c80a1486a4d508ea5a91/src/ngSanitize/sanitize.js#L265-L269
angularjs - 清理一些翻译值,但不清理其他值
我有一个 angular-translate指令,它接受混合的参数。有些是用户生成的,有些是必须编译的 HTML(使用translate-compile
)。
请参阅此 plunker以获得一个工作的、大大简化的示例。
当translate-sanitize-strategy
设置为“null”时,不会对任何内容进行清理:
这使得您必须向 john-doe 支付 13.37 欧元。
但是当用户将昵称设置为 时john-<span onmouseover="this.textContent=\'h@ck3d\'">doe</span>
,它将运行该昵称并在鼠标悬停后呈现,您必须向 john-h@ck3d 支付 13.37 欧元。显然是 XSS 的一个例子。
当我将策略设置为 时sanitizeParameters
,这也是我们的全局设置,受益人得到了适当的消毒。但是amount
,我信任(此时)并且需要编译的 也是如此!
这使得You must pay to john-doe。因此,该beneficiary
值已正确清理,但值量也是如此,我需要保持未经清理以便 Angular 编译它。
我已经搜索了一个解决方案,我使用过滤器手动清理受益人的价值:
但这似乎需要我编写一个使用ngSanitize
服务的过滤器;不是那么难,但仍然有一些工作、测试和代码,我希望本机可用。某处。
我已经通读了角度翻译代码,以查找是否存在(隐藏)标志或命名约定等,允许按值设置清理,但找不到。诸如translate-sanitize-attributes="['foo', 'bar']" or even a
translate-value-amount-astrusted=` 之类的东西。但是找不到任何暗示能够按价值设置清理策略或省略它的东西。
这通常是如何在 angularjs 和 angular-translate 中实现的?
angularjs - 1.7.0 上的 AngularJS ngSanitize 错误
我几乎遇到了这个错误: AngularJS ngSanitize Error
简短版本:“小写字母不是函数”。
虽然我的应用程序将 AngularJS 强制执行为 1.4.9,但我们没有强制执行 angular-sanitize,因此它解析为 1.7.0,并且在该版本的 AngularJS 上,小写函数不再存在,从而产生错误。
可能通过将 angular-sanitize 强制为固定版本可以解决此问题,但我想超越修复它并了解导致问题的原因以及原因,因为我发现了一些不一致之处。
AngularJS 被强制到 1.4.9。bower-components 文件夹包含此版本,编译后的 build 文件夹也包含此版本,Chrome 上的开发人员面板显示仅获取此版本。这个版本确实有小写的方法。
Angular-sanitize 有 angular 1.7.0 作为依赖项,但它从未下载过,永远不会。不在整个项目的任何单个文件夹或子文件夹中,不在编译时,也不在 Chrome 中。所以我猜他唯一可以访问的angular.js是 1.4.9,它确实有小写的方法。
如果唯一可用的angular.js仍然具有该方法,我不太明白为什么会出现“小写不是函数”错误。另外我不明白为什么 angular-sanitize 1.7.0 要求 angular 1.7.0 在 AngularJS 1.7.0 上使用不存在的方法(Angular 开发人员错误?但我很难相信。)
sanitize 可能正在以某种方式下载和访问 angular 1.7.0,但我想知道如何。只是出于好奇。并且还要确认这是否是 Angular 开发人员的错误,或者我是否遗漏了一些东西。
javascript - 未捕获的类型错误:angular.lowercase 不是函数
未捕获的类型错误:angular.lowercase 不是函数
我的 angularjs 应用程序中出现此错误,并且整个应用程序未运行。这是它在textAngular-sanitize.js:413
.
无法调试,我尝试使用与 angular.js 相同的版本,但没有成功。请为此提供解决方案。除了控制台中的此错误消息外,我没有任何可分享的内容。
angularjs - tether-shepherd 与 Angular 版本 1.7.0 不兼容
之前我使用的是 angular 1.5 版和 angular sanitize 1.5 版。但是现在我已经将我的依赖关系从 1.5 版更新到 1.7 版,用于角度和角度清理,并且在更新的版本中,Shepard 卡无法正常工作。因此,任何人都知道 tether-shepherd 1.8.1 和 angular 1.7 之间是否存在任何兼容性问题。
不工作意味着 Shepard 卡没有出现在应该出现的页面上。
提前致谢...
javascript - 在变量上使用脚本标记时角度清理抛出错误
尝试使用 angular sanitizer 在我的应用程序上实现 angular sanitizer,但它没有按预期工作。
引发 Uncaught SyntaxError:使用脚本时出现无效或意外的令牌错误
$scope.snippet = "<script type='text/javascript'>alert(1)</script>"
没有脚本也能正常工作
它在浏览器中发出警报,但期望 p 标签的内部文本。
还可以在 html 中获取输出
{{ 逃脱(””) }}
如何通过从 html 模板调用控制器函数来清理具有脚本标记的变量。
angular-sanitizer - Angular中的消毒
我有一个具有属性 photoPath 的子模型
我正在尝试清理 photoPath 以绕过角度安全性
路径被调用并分配为public imgurl: Child["photoPath"];
数组中的 ( )
HMTL 调用 imgurl 如下所示: