我读过AngularJs使用某种沙盒来防止在{{}}大括号内运行任意表达式。根据Angular版本,有几个关于如何转义该沙箱的示例。例如,在版本1.4.0 - 1.4.9中,如果我将它粘贴到代码中,则以下代码段可用。Angularjs沙箱逃逸有什么含义?
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}
我不明白的是为什么它是如此重要?上面的例子只有在表达式已经在html中时才起作用。我为什么要转义沙盒,而不是使用常规XSS注入<'script>?
{{<script>alert(1)</script>}}
这个沙箱逃脱的东西是如何与$ sanitize和$ sce关联的?
我知道$ sce和$ sanitize之间的区别。我不知道的是,沙箱旁路是否可以用来逃避消毒或以任何其他方式破坏安全。如果不是,那么我是否应该担心呢?我在问,因为我已经阅读了[很少有文章](http://blog.portswigger.net/2016/01/xss-without-html-client-side-template.html),但我仍然不愿意,不要在实践中使用它。 – JakubM