我确实阅读了谷歌搜索第一页上的每篇文章。充其量,有一些模糊的东西,如it removes script tags and other harmful content.这基本上是它的全部吗?这是什么“其他有害内容”?
这里的最终目标是什么,我关心的是什么?
这通常用于什么?如果我们让用户输入可能包含html的长字符串,是否合理使用它?或者它仅适用于我们明确让用户生成html的时候?
答案 0 :(得分:2)
例如,Alice可能会有一个SPA,让她的用户输入也在同一页面中执行的代码片段,这些代码片段也会显示给访问该页面的其他用户。< / p>
鲍勃决定插入一个恶意代码段,让他通过查看者的凭据(即前端中的帐户用户名和会话ID)向自己的终端发送HTTP请求,从而获取有关查看这些页面的人的信息。 ,或执行相同操作的外部脚本。
爱丽丝查看了这个页面,毕竟她对用户的所作所为感到好奇!她很少知道Bob现在可以使用提升的权限访问她的会话ID。
然后Bob继续使用所述会话ID访问应用程序,将自己的帐户提升为管理员权限,启动Alice的帐户并帮助自己处理内部信息......可能是信用卡帐户详细信息。我只是在现场编织,但你明白了。
简而言之,当您让渲染时,您不应该信任所有用户输入。这就是ngSanitize,以防止不必要的代码执行。