大概看了下,http的基本认证方式有basic,digest两种
参考博文:
详解HTTP中的摘要认证机制 http://blog.csdn.net/tenfyguo/article/details/8661517
RESTful Api 身份认证中的安全性设计 http://mengkang.net/625.html
Spring Security 学习之HTTP基本认证和HTTP摘要认证 http://stevex.blog.51cto.com/4300375/1358043
大概原理是:
basic认证是把用户名和密码都给传输了,所以不安全
digest认证则是用户登录后在客户端分配好 api_key 和 sec_key,每次请求就把请求参数+sec_key生成签名,但是不传输sec_key,后端用对应的sec_key来验证请求是否被伪造
同时利用时间戳来一定程度的防止重放攻击
有空再写写代码