我开始学习Angular,并发现可以从开发人员工具中看到对后端的每次调用。所以当我得到这样的方法/函数时:
getUser(userId){
return this.http.post('server/page/get-user', {id:userId});
}
Run Code Online (Sandbox Code Playgroud)
然后在某些组件中,我会这样称呼它:
this.userService.getUser(2).subscribe((data)=> {
console.log(data)
})
Run Code Online (Sandbox Code Playgroud)
根据发布的用户ID,基本上返回用户信息(名称,地址等)的内容。如果要获取随机的用户信息,他们难道不可以通过在请求有效载荷中使用随机数来对此端点进行API调用,而只是获取该用户信息吗?
我读到一些解决此问题的方法是使用JWT,它基本上是对有效负载进行加密的方法,但是没有选项可以使此api调用仅在我的应用程序中可用吗?还是至少使其对开发人员工具不可见?
有没有办法隐藏API调用?还是将其设为私有?
否。浏览器属于用户。它所做的是在他们的控制之下,而不是您的。
根据发布的用户ID,基本上返回用户信息(名称,地址等)的内容。如果要获取随机的用户信息,他们难道不可以通过在请求有效载荷中使用随机数来对此端点进行API调用,而只是获取该用户信息吗?
如果您正在运行未经身份验证的API。是。
听起来您似乎希望通过模糊的方式获得安全性,而这种方式是非常不可靠的。
我读到一些解决此问题的方法是使用JWT,该方法基本上是对有效负载进行加密
并不是的。
您需要身份验证/授权。
您需要识别用户(可以通过用户名和密码,与Facebook或Twitter之类的提供程序进行OAuth识别)。
然后,您需要确保允许用户读取他们所请求的数据。例如,用户记录只能由拥有记录的用户或具有管理员角色的用户访问。
是否没有选择让此api调用仅在我的应用中可用的选项?
没有
还是至少使其对开发人员工具不可见?
没有
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |