繁体   English   中英

为Ajax调用实现安全性

[英]Implementing Security for Ajax calls

我在确保我的Ajax请求安全方面面临困难。 问题是数据篡改。 我已经阅读过有关此问题的信息,建议不要信任来自客户端的信息。 使用提琴手或任何此类工具可以很好地更改它。 我们还需要在服务器端进行验证。 但是我的问题是如何验证。

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

但是,如果一个雇员给另一个雇员的employeeId,他实际上将获得他不应该看到的数据。 要解决此问题,我们有两个解决方案:1.我们应该针对数据库检查请求,此人请求的信息是给他的还是他是那个家伙的经理。2.我们应该以某种方式在应用程序层中验证是否我们是否应拒绝通话。

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

请提出解决方法,我们有什么更好的解决方案来解决这种问题。

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

更新

您需要在后端实现一种授权机制,然后在开始加载权限之后,可以将其添加到用户会话中,因此您不需要每次都查找数据库。对照任务所需的权限检查用户权限。

更多

要实现身份验证机制:目标, user可以看到其自己的个人资料,而supervisor可以看到其department内的每个人。

  • user A在会话中已经加载了user_id ,假设user_id = 123
  • user A只能请求他的信息,因此if (user_id == req_user_id)然后显示该信息,则显示错误。
  • user B的允许值为100 ,那么我们称他为supervisor 现在, if (user_id == req_profile_id)正确,我们将检查权限。 假设此特定任务的任务许可为10所以if (user_perm >= task_perm) ,请继续检查部门,如果请求的用户和当前用户都在同一部门,则显示信息,否则显示错误。

这应该基于您的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM