ngSanitize 究竟保护我免受什么侵害?
What, exactly, does ngSanitize protect me from?
我确实阅读了 google 搜索首页上的每篇文章。充其量,有一些模糊的东西,比如 it removes script tags and other harmful content. 这基本上就是它所做的一切吗?这是什么"other harmful content"?
这里的最终目标是什么,我担心什么?
这通常是用来做什么的?如果我们让用户输入可能包含 html 的长字符串,使用它是否合理?还是仅当我们明确让用户生成 html?
举例来说,Alice 可能有一个 SPA,她可以让她的用户在其中键入也在同一页面中执行的代码片段,这些代码片段也会显示给访问该页面的其他用户。
Bob 决定插入一个恶意代码段,让他通过向他自己的终端发送一个带有查看者凭据的 HTTP 请求(即前端的帐户用户名和会话 ID)来获取有关查看这些页面的人的信息,或者执行相同操作的外部脚本。
爱丽丝查看了该页面,毕竟她很好奇她的用户一直在做什么!她几乎不知道 Bob 现在可以以更高的权限访问她的会话 ID。
Bob 然后继续使用上述会话 ID 访问应用程序,将自己的帐户提升为管理员权限,踢出 Alice 的帐户并帮助自己获取其中的信息……可能是信用卡帐户详细信息。我只是在现场编织,但你明白了。
简而言之,当您让用户呈现时,您不应该相信所有用户输入。这就是 ngSanitize 的作用,它可以防止您执行不需要的代码。
我确实阅读了 google 搜索首页上的每篇文章。充其量,有一些模糊的东西,比如 it removes script tags and other harmful content. 这基本上就是它所做的一切吗?这是什么"other harmful content"?
这里的最终目标是什么,我担心什么?
这通常是用来做什么的?如果我们让用户输入可能包含 html 的长字符串,使用它是否合理?还是仅当我们明确让用户生成 html?
举例来说,Alice 可能有一个 SPA,她可以让她的用户在其中键入也在同一页面中执行的代码片段,这些代码片段也会显示给访问该页面的其他用户。
Bob 决定插入一个恶意代码段,让他通过向他自己的终端发送一个带有查看者凭据的 HTTP 请求(即前端的帐户用户名和会话 ID)来获取有关查看这些页面的人的信息,或者执行相同操作的外部脚本。
爱丽丝查看了该页面,毕竟她很好奇她的用户一直在做什么!她几乎不知道 Bob 现在可以以更高的权限访问她的会话 ID。
Bob 然后继续使用上述会话 ID 访问应用程序,将自己的帐户提升为管理员权限,踢出 Alice 的帐户并帮助自己获取其中的信息……可能是信用卡帐户详细信息。我只是在现场编织,但你明白了。
简而言之,当您让用户呈现时,您不应该相信所有用户输入。这就是 ngSanitize 的作用,它可以防止您执行不需要的代码。