前端应用程序中的安全性



我是与用户身份验证一般的前端和后端有关的新事物。我正在用Angular 2/5构建应用程序。我发现杰森·沃特莫尔(Jason Watmore)的本教程,我将尝试适应我的需求。我在评论中看到,杰森(Jason登录。原因是没有前端应用程序是安全的,因为用户可以更改变量以查看受路线护罩或其他方式保护的路由。该数据仍然可以从后端安全,但是您的功能不希望公众在前端中了解,例如您如何分析用户输入的数据。

我的问题是,在确保前端应用方面,这是绝对不可能的事实吗?这是有道理的,我的直觉是真的,但是我想知道是否有至少很难查看受保护的路线的方法。(就像路由警卫询问服务器是否有效吗?

[编辑]懒惰加载可以在这里发挥作用吗?可以在用户登录后仅提供服务器可用的模块/路由吗?

这是一个非常合理的想法,试图保护某些前端代码免受未经身份验证的用户,而懒惰的加载实际上可能会有所帮助。

一些想法:

  • 只允许某些(经过身份验证的)用户下载某些前端文件的确会通过使该代码无法分析潜在的外部攻击者来提高安全性。因此,没有凭据的人将很难在应用程序的那些部分找到XSS,这是实际的安全福利。
  • 可以通过混淆来实现类似的事情,但是显然,永远不会如此出色,以免给未经身份验证的用户提供代码。
  • 这样做将使开发(过程)总体上变得更加复杂,复杂性通常不是安全的好朋友。
  • 许多攻击者不是外部的。在客户端代码中拥有敏感信息不是一个好主意,并且业务逻辑本身可以非常敏感。该应用程序的任何有效用户都可以成为"攻击者",如果该代码在客户端上,则需要具有此代码。
  • 因此,最好的做法是将这种业务逻辑放在服务器上。
  • 但最终,它是基于您要承担的风险。需要考虑的因素包括将其全部投入服务器的价格(资源数量),如果此信息丢失给对手,可能发生的可能性,即发生这种情况的可能性(即有5个可信赖的用户,或150000年未知的)和您的风险食欲。

前端代码和后端之间的差异是前端在访问网站的人的计算机上运行,而后端通常在服务器上运行距离英里。如果是前端代码,则意味着它在用户计算机上,这意味着他们可以访问它。您可以偷偷摸摸地做到这一点,以便只有知识渊博的"黑客"实际上可以看到任何重要的东西,但是不可能隐藏前端代码。他们的计算机需要它,因此用户可以访问它。

最新更新