【发布时间】:2017-03-07 05:03:45
【问题描述】:
我正在阅读本文档中有关 API 最佳实践的信息
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
我以前构建过简单的自定义 REST API,我觉得我也设法保护了它们。之前,我在服务器上生成了客户端的身份验证“令牌”或护照,并将其打印在页面上。这个想法是客户端既不能猜测也不能轻易逆向工程该令牌是如何生成的,因为生成它的函数对客户端是不可见的。这是一个糟糕的用户体验,因为令牌会在一定时间后过期,因此页面会过期并且无法向 API 发出新请求。
但是,我仍然不确定在与服务器“轻微分离”的客户端上会发生这种情况,因为网络服务器没有为每个请求提供页面。所以客户端需要事先了解一些关于身份验证的信息。
我感觉这种模式将迫使我在客户端生成或存储 API 身份验证详细信息,任何人都可以看到。我发现这种做法是不安全的,我想避免这种做法,但鉴于我知道的信息(我承认这是稀疏的),这是不可能的。
在 API 安全性和身份验证方面,我从这个模式中遗漏了什么?
【问题讨论】:
标签: rest security authentication oauth api-design