在前端和后端保护路由[关闭]
Posted
技术标签:
【中文标题】在前端和后端保护路由[关闭]【英文标题】:Secure a route on the frontend AND the backend [closed] 【发布时间】:2022-01-01 08:47:45 【问题描述】:我正在构建一个 Spring Boot + Angular 应用程序。
使用 Guards 我可以确保只有登录用户才能访问我的 Angular 应用程序(通过 JWT)。但这只是可以绕过的前端便利。
我是否可以在后端额外保护我的应用程序,以便非 loggen 用户无法访问我的应用程序? 那是一回事吗?
我应该这样做,还是应该只真正保护后端 API 调用并确保用户无法访问它无法访问的实际数据?
【问题讨论】:
【参考方案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 的教程来实现此安全性。以上是关于在前端和后端保护路由[关闭]的主要内容,如果未能解决你的问题,请参考以下文章