有没有一种很好的方法来保护带有角度的私人页面? (我知道有,但我听不懂)。 我搜索了很多这个问题,发现的所有信息看起来都是一样的,并没有真正给我解决方案
如何在服务器端保护页面(如管理面板)的角度?我将解释我的意思。
我知道我们可以创建一个服务器端代码,该代码将转到他自己的存储(数据库等)中,并对照他的凭据检查角度发送的凭据。
但是-不管服务器端的答案是什么(让我们说PHP或Firebase等。),由于最终将代码生成到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..
那又是什么?当然,这是不安全的..(我也尝试过,对吗我是对的) 请帮助我了解我的缺失!
谢谢!
答案 0 :(得分:2)
Angular或任何其他客户端框架应仅包含UI Logic。 公开UI逻辑不是安全线程。
服务器端webapi应该具有正确的身份验证和授权。
JWT(JSON Web令牌)用于安全地访问服务器端API。
正如您所说,用户可以修改代码 if(1 == 1),但是用户可以看到UI。 您应该在服务器端验证凭据并将数据提供给客户端
答案 1 :(得分:0)
前端主要负责向服务器显示和发送数据,服务器负责存储和处理数据。
表示服务器负责检查用户是否已通过身份验证(已登录)并具有访问该页面(已授权)的权限。正如Saravana所说,JWT是一种很好的技术,可确保用户已通过身份验证并有权访问该数据。
但这并不意味着您不应该注意安全性。 前端环境应特别注意XSS攻击。但是好消息是Angular有很多事情需要XSS处理,但是您仍然需要自己实现感觉事物,例如JWT和Route guards。