2016-02-24 66 views
0

我正在致力于restul api,无法找到解决问题的方案。Restful apis的授权

我有一个通过ID获取资源的请求,我已经实现了基本认证。

现在,如果有人更改了获取请求中的Id,他也可以访问其他用户的资源。

如何限制用户只能看到他的资源,我是否必须为每种类型的资源创建一些安全过滤器?

任何链接到最佳实践,以防止这种问题将不胜感激!

+0

你能粘贴你的代码吗? – FRECIA

+0

你如何通过ID获取数据?大概来自某种数据库?通常情况下,您会在存储库/数据访问层中由该用户过滤数据。 –

+0

这不是针对具体的代码..我可以举一个例子 假设用户1:认证自己,并休息api调用getUser/{id}。只允许他访问Id 1和2的用户。但是,如果他将Id更改为3,则可以访问它。 为了避免它,我可以添加一个过滤器或拦截器,首先检查访问,然后做出相应的响应。 我的问题是每种类型的资源,即用户,联系人,地址我必须写这个过滤器? –

回答

2

简短的回答是:是的,如果用户实际上被允许访问该资源,则需要开发一些用于检查每个资源的内容。

如果用户不被允许,您将返回一个403 Forbidden HTTP错误。

0

如果用户有访问权限,那么请求应该有一些授权相关字段,作为令牌的访问权限。有了它,你可以验证哪个用户正在请求数据,如果允许,那么你照常继续进行GET。一个过滤器将适合这个。

检查授权这里:https://en.wikipedia.org/wiki/List_of_HTTP_header_fields