Javascript 隐藏客户端API调用

Javascript 隐藏客户端API调用,javascript,angularjs,api,security,Javascript,Angularjs,Api,Security,为了学习这些框架,我制作了一个小应用程序(.Net web api后端服务和angularjs for frontend),开始喜欢这个项目本身,并认为部署它会很好 不管我的.NETREST服务是多么公开,目前任何人都可以通过api对象公开crud,显然我不希望有人偶尔清理我的数据库。我并没有真正存储任何敏感信息,这是一个小型网络游戏,我在db中存储的东西都是项目、位置、游戏大厅、玩家(只有id、用户名和参考列),但仍然删除它们会在某些地方造成大问题 那么我该如何防止这种情况呢?我的第一个想法是

为了学习这些框架,我制作了一个小应用程序(.Net web api后端服务和angularjs for frontend),开始喜欢这个项目本身,并认为部署它会很好

不管我的.NETREST服务是多么公开,目前任何人都可以通过api对象公开crud,显然我不希望有人偶尔清理我的数据库。我并没有真正存储任何敏感信息,这是一个小型网络游戏,我在db中存储的东西都是项目、位置、游戏大厅、玩家(只有id、用户名和参考列),但仍然删除它们会在某些地方造成大问题


那么我该如何防止这种情况呢?我的第一个想法是,只要没有人通过某种方式向用户隐藏api调用来发现我的api地址,这个问题就会得到解决。这是一个可行且现实的解决方案吗?

无论你做什么,你都不能对客户端隐藏你的API调用。他们总是可以使用数据包嗅探器来查看你的应用程序在做什么


您需要构建一个更安全的API,它只允许用户操作他们的帐户。您可以通过分配令牌来控制他们的访问,就像这样。

我不确定传统的身份验证是否适用于我的情况。按设计,玩家没有密码。人们只需写下自己的用户名(不必是唯一的),或者加入游戏大厅,或者创建一个新的大厅,如果他退出并再次光临,他只需重复此操作并创建另一个“帐户”在网页关闭时删除帐户。编辑:有一款网络游戏,它的用户系统与我的几乎相同。玩家是否主持大堂?是的,任何人都可以创建或加入它,但他们目前被分配为玩家,主持人与加入大堂的任何其他玩家没有什么不同。大堂是3-8人的小游戏好吧,所以不要用API调用来删除你的大堂,让你的大堂经理ping大堂,以确保它们仍在运行。断开连接一段时间后,请将其从大厅列表中删除。你的前端不应该触动数据库,创建一个API,只为用户提供你的应用程序工作所需的最低限度。实际上,我有类似的一般想法,限制客户端访问删除任何内容,并在x时间内未更新的情况下自动删除内容,因为游戏时间很短,每次重新启动时,每个玩家都会得到更新。谢谢,现在我知道我的想法是正确的。
“我不希望有人偶尔清理我的数据库”
-那么不要让未经授权的用户这样做?您无法隐藏客户端代码正在执行/调用的操作。为了在客户机上执行代码,根据定义,客户机需要能够读取该代码。@David这就是我不确定如何授权他们的原因,当usersWell没有密码时,您要么对用户进行身份验证/授权,要么不公开该功能。真的没办法。