首页 > 解决方案 > 如何使用角度(6)和服务器端保护页面

问题描述

有一个非常好的方法来保护带有角度的私人页面?(我知道有但我无法得到它)..我搜索了很多这个问题,我发现的所有信息看起来都一样,并没有真正给我一个解决方案

Angular 如何在任何服务器端保护页面(如管理面板)?我会解释我的意思..

我知道我们可以创建一个服务器端代码,该代码进入他自己的存储(数据库等),并根据他的凭据检查 Angular 发送的凭据。

但是 - 无论服务器端的答案是什么(比如说 PHP 或 Firebase 等),用户都可以更改 Angular 代码,因为它最终会生成到 JS 中!

可以说我的角度代码是这样的:

somecode..
somecode..
somecode..
if (serverside.respone == true) {
    goto AdminPanel page;
} else {
    alert('not authorized!');
}
somecode..
somecode..
somecode..

当我在 chrome 中打开我的 devtools 时,在我运行我的应用程序(使用 ng serve)之后,我可以轻松查看“main.js”源文件,并将此代码轻松更改为:

somecode..
somecode..
somecode..

if (1 == 1) {
    goto AdminPanel page;
} else {
    alert('not authorized!');
}

somecode..
somecode..
somecode..

然后呢?当然这不安全..(我也试过了,我是对的)请帮助我理解我错过了什么!

谢谢!

标签: angularsecuritybackend

解决方案


Angular 或任何其他客户端框架应该只包含 UI Logic。公开 UI 逻辑不是安全线程。

服务器端 webapi 应该具有适当的身份验证和授权。

JWT(JSON Web Token)用于安全访问服务器端 API。

如您所说,用户可以修改代码if (1 == 1),但用户可以看到 UI .. 而不是数据。您应该在服务器端验证凭据并将数据提供给客户端


推荐阅读