HTTP Authentication(客户端请求合法性认证)

HTTP Authentication(客户端请求合法性认证)

 最近公司项目架构设计时,需要考虑安全性问题。本章是关于 客户端请求合法性认证 的相关话题。

HTTP Authentication 请求认证

客户端发送请求时需认证此信息

作用:防止其他方式请求资源,保护资源不被窃取

方式一:Basic Authentication

    当客户端发送请求时,服务器会进行认证

1.    用户发送请求给服务器

2.    服务器检查认证信息,未认证不能访问资源,发送需认证信息

3.    用户输入用户名+密码 客户端将用户名+密码按指定算法加密再次请求服务器

4.    服务器按指定算法解密 得出用户名密码进行校验

5.    认证完成即可访问服务器资源

缺点:安全性不高,被拦截抓取WWW-Authenticate值风险大,且此值不会改变,容易被破解

方式二:Digest Authentication

1.    用户发送请求给服务器

2.    服务器检查认证信息,未认证不能访问资源,发送需认证信息+随机临时值nonce

3.    用户输入用户名+密码 客户端将用户名+密码+nonce按指定算法加密再次请求服务器

4.    服务器按指定算法解密 得出用户名密码进行校验

5.    认证完成即可访问服务器资源

缺点:有可能被破解,但是安全性已经比基本认证好很多。应为每个时刻的nonce并不一样,若抓取某时刻的认证信息也无法进行有效访问

综上来看,方式二或许是更好的选择。若不太了解http,可查看相关http请求头,请求体,响应头等相关文档。

猜你喜欢

转载自blog.csdn.net/javabuilt/article/details/79494591