[英]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.