Security 如何保护我的应用程序的在线API?
我正在为Windows Phone和Android创建一个应用程序。所以,现在我正在构建一个他们都可以使用的webapi,但我想在我的应用程序可以使用它的情况下保护它。我该怎么做呢?我的应用程序中没有其他人可以访问这些API 我不想实现OAuth 我想到了两种情况: 首先(我在客户端存储用户名和散列密码):Security 如何保护我的应用程序的在线API?,security,login,passwords,basic-authentication,Security,Login,Passwords,Basic Authentication,我正在为Windows Phone和Android创建一个应用程序。所以,现在我正在构建一个他们都可以使用的webapi,但我想在我的应用程序可以使用它的情况下保护它。我该怎么做呢?我的应用程序中没有其他人可以访问这些API 我不想实现OAuth 我想到了两种情况: 首先(我在客户端存储用户名和散列密码): https/ssl上的基本身份验证,就是这样 Second(我在客户端上存储accesstoken): 通过https/ssl进行基本身份验证以接收访问令牌 为了获取访问令牌,用户向r
- https/ssl上的基本身份验证,就是这样
- 通过https/ssl进行基本身份验证以接收访问令牌
- 为了获取访问令牌,用户向requestoken发送一个请求,以验证客户端和服务器是否都知道clientsecret
- 对于每个API调用,都必须发送accesstoken以检查访问
在现实世界中是如何做到的?您可以先对稍加修改:
- 在客户端上存储用户名和密码
- https上的基本身份验证
- 用户拥有存储在服务器和客户端上的密钥
- 每个请求都被规范化(转换为一个不同的字符串,其中包含请求方法、URI、参数和时间戳)
- 规范化请求通过HMAC使用密钥进行散列,散列和用户id在HTTP
头中传递Authorization
- 在服务器上,使用相同的算法生成散列(带有来自HTTP
头的时间戳),并与发送的散列进行比较Date
- 如果结果相等,则对请求进行身份验证
一个例子是-链接文档也是如何为自己的API实现它的一个很好的例子。您可以先对稍作修改:
- 在客户端上存储用户名和密码
- https上的基本身份验证
- 用户拥有存储在服务器和客户端上的密钥
- 每个请求都被规范化(转换为一个不同的字符串,其中包含请求方法、URI、参数和时间戳)
- 规范化请求通过HMAC使用密钥进行散列,散列和用户id在HTTP
头中传递Authorization
- 在服务器上,使用相同的算法生成散列(带有来自HTTP
头的时间戳),并与发送的散列进行比较Date
- 如果结果相等,则对请求进行身份验证