假设我开发了一个社交网站,我决定我希望应用程序的核心完全是REST.用户使用密码登录.现在,我的问题是每个请求都需要密码和登录对(假设您需要提供您的身份)在URL的末尾www.site.com/index.php?p=pass&l=login吗?在每次请求时我都会有点紧张.我知道我错过了一些东西......它不可能是因为任何人都可以窥探数据包并捕获密码并轻松登录.我认为在HTTPS中完成所有请求都没有意义(我读过它对资源的负担).
所以请填写我需要了解的缺失部分.
Bor*_*lid 12
首先,除非您知道使用SSL对您来说太昂贵,否则请使用SSL.安全性在性能优化之前出现.
现在,关于传递用户名和密码:通常你有一个"API访问令牌"等.它实际上不是用户名/密码,但是当有人拥有它时,它们被授予了发出API请求的能力.这些可以有限或无限制的有效性.您甚至可以将令牌设为签名 - 用户使用某个密钥签署请求,然后验证签名.
但是,是的,因为每个API请求都独立于最后一个,所以您将要么必须使用HTTP基本身份验证或其等效身份,要么在每次请求时传递API令牌(或其他签名设备).
通常,您调用login方法,该方法将生成可在所有下一个请求中重用的令牌.
我的建议是强制在每个请求上使用SSL,如果不可能,您应该请求安全登录并为该特定会话生成临时令牌(类似于会话ID).
您可以在下图中看到Flickr API如何使用OAuth提供身份验证.在这种情况下,临时令牌用于请求永久令牌和令牌机密.

摘自:http://www.flickr.com/services/api/auth.oauth.html#access_token
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |