API安全机制
为什么要保证API安全
接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:
Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。
时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间差大于一定时间(比如5分钟),则认为该请求失效,这个时间要保证足够完成本次请求的同时尽量短,可以减少缓存服务器的压力(见签名机制)。
签名机制:将Token和时间戳加上其他请求参数就行MD5或SHA-1算法(可根据情况加点盐)加密,加密后的数据为本次请求的签名sign,并将该签名存放到缓存服务器中,超时时间设定为跟时间戳的超时时间一致(这就是为什么要尽量短,二者时间一致可以保证无论在timestamp规定时间内还是外本URL都只能访问一次)。服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。同一个签名只能使用一次,如果发现缓存服务器中已经存在了本次签名,则拒绝服务。
防止别人随便调用你的api
保证传输数据的安全
前后端分离mvvm模式的N宗罪;
5分钟搞定密码学的对称/非对称加密;
接口签名,防止数据篡改之泰斗;
用代码告诉你,令牌实现身份认证;
优雅处理身份认证,让业务代码更6;
数据加密
加密方法
1,对称加密
AES,3DES,DES等,适合做大量数据或数据文件的加解密。
2,非对称加密
如RSA,Rabin。公钥加密,私钥解密。对大数据量进行加解密时性能较低。
Api有哪些安全问题?http接口—前后端分离mvvm