首页 > 解决方案 > 在没有登录的情况下使用 spring boot 和 angular 8 保护应用程序的方法是什么?

问题描述

我想保护使用 angular 8 和 spring boot 5 的应用程序,但它是一种自由形式,不需要登录即可访问 UI。我已经使用 CSRF 保护来保护它,但是任何人都可以通过在请求标头中传递 CSRF 令牌来轻松访问 POST 端点,该请求标头可以从 GET 休息端点获得。所以我需要任何好的解决方案来实现安全性,这样除了项目中的角度页面之外,弹簧休息端点不应该是可访问的。谁能帮帮我吗。

标签: angularspringspring-bootspring-mvcspring-security

解决方案


简而言之,没有。

您可以通过点击处理您的请求的端点来隐藏请求,但是从您开始,请考虑您不能。

让我进一步解释一下:JavaScript 在客户端的浏览器中运行。这意味着客户可以完全访问您的前端代码:如果他愿意,他可以完全分解您的应用程序。

好处是只能在他自己的电脑上破解:客户端不能乱用另一个客户端的浏览器。

另一方面,任何东西都可以访问您的服务器,但您是对其拥有主控制权的人:您应该保护它。

为此,正如您所说,您可以使用 JWT。但是 JWT 是一个身份验证过程,它基本上是一个编码字符串。通过对其进行解码,您可以获得客户端信息,但它们不是从数据库中获取的,而是从令牌本身中获取的。

如果您想保护您的端点,例如,您可以声明只有具有令牌提供的 ID 的用户才能访问您的端点:没有签名就无法伪造令牌。这将保护您的端点并防止其他用户进行修改。

考虑使用与您的后端语言相对应的标签提出另一个问题,这将比要求 Angular 解决方案更有帮助。


推荐阅读