基于http的API,怎么保证安全性?

当前的信息系统,安全第一道关卡,当然就是密码了。API也不例外。要么就是一次性登录,获得一个短期内有效的token;要么就是每次请求都带上账号和密码。

如果是每次都带上账号和密码,那么API站点必须要求使用https,否则有泄露风险。当然变通方法可以是采用非对称加密,将密码用公钥加密后发送,服务端用私钥解密。但是,这么一来,客户端的工作量变大,不一定可行。

如果是采用token方式,则意味着服务器端要保存客户端的状态。按照REST风格,有:

1、网络上所有事物都可以抽象成资源
2、每个资源都有唯一的标识
3、通过接口对资源进行操作
4、对资源的各种操作不会改变资源的标识
5、所有的操作无状态

所谓无状态,就是说服务器不会维持客户端的状态,所有操作都有幂等性,同一个操作,就算操作千万次,都是同样处理。

当然啦,维持请求者的状态的服务器,和提供API的服务器逻辑上分开,这样就不矛盾啦。

不知道我的理解是否正确。

Web Api安全