【问题标题】:Secure a route on the frontend AND the backend [closed]在前端和后端保护路由[关闭]
【发布时间】:2022-01-01 08:47:45
【问题描述】:

我正在构建一个 Spring Boot + Angular 应用程序。

使用 Guards 我可以确保只有登录用户才能访问我的 Angular 应用程序(通过 JWT)。但这只是可以绕过的前端便利。

我是否可以在后端额外保护我的应用程序,以便非 loggen 用户无法访问我的应用程序? 那是一回事吗?

我应该这样做,还是应该只真正保护后端 API 调用并确保用户无法访问它无法访问的实际数据?

【问题讨论】:

    标签: angular spring spring-boot spring-security


    【解决方案1】:

    您必须应用的主要内容是为您的端点添加安全性。您必须将基于 jwt 的安全性应用于需要安全性的 spring boot api 端点。因此,没有 jwt 令牌的未经授权的用户无法访问这些端点。否则,每个用户都可以访问 api 的端点和数据库。这意味着应用程序被黑了。

    【讨论】:

    • 我同意,保护 API 端点非常重要,这样用户就无法获取他们不应该获取的数据。但我问的是不同的东西。假设在我的浏览器中输入“www.myApp.com/admin”会为管理员用户打开一个仪表板。使用 Guards,我可以禁止非管理员打开该页面,即 HTML 本身。但这只是前端的便利性,而不是安全性。是否可以安全地阻止非管理员使用后端打开该链接?
    • 当您在 Angular 中使用保护时,您会禁止没有 jwt 令牌的用户访问“www.myApp.com/admin”页面。任何人都无法访问此页面,但是当您不在 spring-boot 端点中使用 jwt 安全性时,没有 jwt 令牌的用户即使无法访问“www.myApp.com/admin”也可以访问该端点的数据“ 页。在 .NET Core 平台中,我们通过将 [Authorize] 属性添加到控制器方法来执行此安全性。在 Spring Boot 中,以不同的方式实现了这种安全性。您可以遵循基于 Spring Boot JWT 的教程来实现此安全性。
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 2017-11-18
    • 2021-05-05
    • 2020-11-07
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    相关资源
    最近更新 更多