『Java』用户登陆除了cookie和session,还有这么多解决方案( 四 )
然后从客户端和服务端的http过程来说 , 当别人截获到客户端请求中的会话凭证 , 就能拿这个凭证冒充原用户 , 做一些非法操作 , 而服务器也认不出来 。 这种安全问题 , 可以简单采用https来解决 , 虽然可能还有http劫持这种更高程度的威胁存在 , 但是我们从代码能做的防范 , 确实也就是这个层次了 。
最后的安全问题就是CSRF(跨站请求伪造) 。 这个跟代码有很大关系 , 本质上它就是代码的漏洞 , 只不过一般情况下这些漏洞 , 作为开发人员都不容易发现 , 只有那些一门心思想搞些事情的人才会专门去找这些漏洞 , 所以这种问题的防范更多地还是依赖于开发人员对这种攻击方式的了解 , 包括常见的攻击形式和应对方法 。 不管凭证信息本身多么安全 , 别人利用CSRF , 就能拿到别人的凭证 , 然后用它冒充别人进行非法操作 , 所以有时间还真得多去了解下它的相关资料才行 。 举例来说 , 假如我们把凭证直接放到url后面进行传递 , 就有可能成为一个CSRF的漏洞:当恶意用户在我们的应用内上传了1张引用了他自己网站的图片 , 当正常的用户登录之后访问的页面里面包含这个图片的时候 , 由于这个图片加载的时候会向恶意网站发送get请求;当恶意网站收到请求的时候 , 就会从这个请求的Reffer header里面看到包含这个图片的页面地址 , 而这个地址正好包含了正常用户的会话凭证;于是恶意用户就拿到了正常用户的凭证;只要这个凭证还没失效 , 他就能用它冒充用户进行非法操作 。
5. 总结 前面这三种方式 , 各自有各自的优点及使用场景 , 我觉得没有哪个是最好的 , 做项目的时候 , 根据项目将来的扩展情况和架构情况 , 才能决定用哪个是最合适的 。 本文的目的也就是想介绍这几种方式的原理 , 以便掌握web应用中登录验证的关键因素 。
作为一个前端开发人员 , 本文虽然介绍了3种会话管理的方式 , 但是与前端关系最紧密的还是第三种方式 , 毕竟现在前端开发SPA应用以及hybrid应用已经非常流行了 , 所以掌握好这个方式的认证过程和使用方式 , 对前端来说 , 显然是很有帮助的 。 好在这个方式的技术其实早就有很多实现了 , 而且还有现成的标准可用 , 这个标准就是JWT(json-web-token) 。
JWT本身并没有做任何技术实现 , 它只是定义了token-based的管理方式该如何实现 , 它规定了token的应该包含的标准内容以及token的生成过程和方法 。 目前实现了这个标准的技术已经有非常多:
本文插图
更多可参阅:https://jwt.io/#libraries-io
原文:https://www.cnblogs.com/lyzg/p/6067766.HTML
推荐阅读
- IT之家7/8.1用户仍可以免费升级至Win 10,外媒亲测可行:Win
- 『Java』java数据结构系列——什么是数据结构
- 「微信」facebook全球用户数达30亿,微信还有机会达到此高度吗?
- 『Apple Watch』WatchOS 7新特性!Apple Watch或通过传感器检测用户心理健康
- 我只想看球身价超1亿欧,克洛普欲打造钢铁防线!世界级铁卫或登陆安菲尔德
- 『Java』马云:成功人跟普通人差不多,但这三点我一定要分享给所有年轻人
- zol中关村在线iPhone一个让安卓用户落泪的小功能——快捷指令
- 小谢娱乐哦引来广大网友狂点赞,直呼炸天,程序员用Java实现扫雷小游戏
- 极客宇文氏手机的寿命到底是多久,你多长时间换一次手机?手机本身哪些部位决定了寿命用户使用习惯注定寿命
- 气垫登陆艇@花大力气引进的“野牛”船停产了吗?