1

我在使我的 Ajax 请求安全方面遇到了困难。问题是数据篡改。我已阅读有关此问题的信息,建议永远不要相信来自客户的信息。使用 fiddler 或任何此类工具可以很好地改变它。我们还需要在服务器端进行验证。但我的问题是如何验证。

让我们看一个例子。假设我在数据库中有员工信息,并且我公开了一种方法 GetEmployeeDetailByEmployeeId。在任何员工提出此请求之前,他将通过 userId 和密码进行身份验证,并授权该类型的用户是否允许提出此请求。

但是,如果一名员工提供其他员工的employeeId,他实际上会得到他不应该看到的数据。为了解决这个问题,我们有两个解决方案 1. 我们应该检查数据库的请求,这个人请求的信息是给他的还是他是那个人的经理 2. 我们应该以某种方式在应用层本身验证我们是否是否应该拒绝来电。

第一种方法是性能密集型的,我必须发出数据库请求并找到记录的关联,这也会增加开发成本。

请建议走哪条路,我们有没有更好的解决方案来解决这类问题。

4

1 回答 1

1

显然,您需要在后端检查它,否则您的应用程序可能会被孩子利用。

更新

你需要在你的后端实现一个授权机制,然后你一开始加载权限后,你就可以将它添加到用户会话中,这样你就不需要每次都查找数据库,你只需要根据任务所需权限检查用户权限。

更多的

实现认证机制: 目标,user可以看到自己的个人资料,但supervisor可以看到他的每个人department

  • userA 已经user_id在会话中加载了,比如说user_id = 123
  • userA 只能请求他if (user_id == req_user_id)的信息,然后显示信息,否则显示错误。
  • userB 的权限值为100,那我们就叫他吧supervisor。现在if (user_id == req_profile_id)不是真的,我们将检查权限。假设这个特定任务的任务权限是10so if (user_perm >= task_perm),继续检查部门,如果请求的用户和当前用户在同一个部门,则显示信息,否则显示错误。

这应该根据您的信息起作用。

于 2013-01-10T11:13:50.703 回答