【发布时间】:2019-10-09 11:37:29
【问题描述】:
我目前正在开发一个使用 Django REST Framework 开发的新 REST Web 服务,在定义 URL 时,我怀疑它的安全性。遵循为数据库中的列表数据定义 GET 方法的标准,我不明白这是否是一种安全的数据获取方法。
想象一下这种情况:
我访问定义为返回患者列表的 URL /patients。此列表不公开,只能由授权用户请求。由于并非所有用户都能看到所有患者,因此我创建了一个 hash 代码作为键,允许为该特定用户列出患者。如果没有提供哈希码,该方法返回 403 禁止。
它的工作原理是这样的:/patients/HASHCODE
由于我的哈希码是 URL 中的请求,而不是 HTTP 消息正文中的请求,就像通过 POST 方法完成的那样,这对我来说看起来不安全。我知道 SSL 可以隐藏一些请求信息,但不能隐藏 GET 请求。当然,这个散列不应该对任何人可见。
我可以说这是访问我的 API 的安全方法吗?如果没有,我应该如何实现?
【问题讨论】:
标签: rest