潜在危险

  在任何 web 应用中,允许未过滤的用户提供的内容成为 HTML、CSS 或 JavaScript 都有潜在的危险。

  (1)注入HTML

  Vue 会自动转义 HTML 内容,以避免向应用意外注入可执行的 HTML。

  (2)注入URL

  如果没有对该 URL 进行“过滤”以防止通过 javascript: 来执行 JavaScript,则会有潜在的安全问题。

  在前端进行 URL 过滤,那么就已经有安全问题了。用户提供的 URL 永远需要通过后端在入库之前进行过滤。然后这个问题就会在每个客户端连接该 API 时被阻止,包括原生移动应用。

  (3)注入样式

  恶意用户仍可以提供 CSS 来进行“点击诈骗”,例如将链接的样式设置为一个透明的方框覆盖在“登录”按钮之上。允许用户为一个 <style> 元素提供内容,将产生甚至更严重的安全漏洞,以使得用户完全控制整个页面的样式。要在模板内避免渲染 style 标签。

  推荐只允许在一个 iframe 沙盒内进行 CSS 的完全控制。或让用户通过一个样式绑定来控制,推荐使用其对象语法且只允许用户提供特定的可以安全控制的 property 的值。

  (4)注入JavaScript

  每个 HTML 元素都有接受 JavaScript 字符串作为其值的 attribute,将用户提供的 JavaScript 绑定到它们任意当中都是一个潜在的安全风险。

  永远不要向 Vue 挂载可能包含服务端渲染或用户提供的内容。

  在表单提交时提交 CSRF token,永远是件好事。

原文地址:https://www.cnblogs.com/bien94/p/12531126.html