关于REST中做简单验证的思考
来源:互联网 发布:plsql跨数据库复制表 编辑:程序博客网 时间:2024/06/07 14:12
之前有位朋友留言问我是否对REST的验证有过研究,当时,我之前是用JBOSS来做基本的验证管理,每次请求都要带上验证信息。
对于WEB,这样做似乎有点不太优雅。
传统的http连接下,简单的web验证,是靠Session来做的。而Session其实是代表状态的,客户端的状态。REST是无状态的,服务资源无状态。
但是在访问的时候,由于Session的存在,就把客户的状态跟资源访问结合到一起了,有状态&无状态 == 有状态。
所以,Session其实是跟REST背道而驰的。
而关于REST的安全问题,全世界都在讨论。高级验证似乎已经有比较成熟的方法了,https+cache或者OAUTH。
而简单验证,怎么办呢?
个人的想法是,既然Session是有状态的,在解决安全问题中,其根本用途是保存用户信息,那么,我们是不是可以用如下的方法来解决呢?
1. 一个用户连接时,根据该用户唯一标示字段(例如数据库主键)加上当前时间,生成one-way hash,写入一个内存cache,并返回该token;如果cache中已存在该token,拒绝该链接。(每个token基本上都是唯一的,不可能产生两个一样的。如果是一样,必然是伪造的)
2. 页面在传递的时候同时传递该token,把该token带入URL或者请求中去;
3. 对于需要验证的资源,后面REST服务在接收到Request后,判断该token(读cache)。如果没有token或不对,返回登陆页面。
如果是分布式,那么使用分布式cache就OK了。
这是暂时的想法,后面如果有时间再去细想。如果写个POC出来。
- 关于REST中做简单验证的思考
- Java 开发中,关于权限验证的相关思考
- 关于Java登录中验证码的思考
- 关于Unity3D中deltaTime的简单分析到引发思考
- 关于JAVA中一些简单加密算法的思考
- 关于异常的简单思考
- 关于properties的简单思考
- 关于如何做概要设计的思考
- 关于做系统集成项目的思考
- 关于图片验证码设计的思考
- 关于数组名的思考和验证
- 关于做科研和做项目的一点点思考
- php做的简单验证码
- 用ajax做简单的数据验证
- 做一个简单的验证码
- JS做简单的验证码
- 运用正则做简单的表单验证
- 关于学习方向的一次简单思考
- 解决MySql数据库显示中文乱码的问题
- c/c++中内存划分
- android 反编译
- ViewPager+Fragment获取联系人列表
- input子系统五 多点上报协议
- 关于REST中做简单验证的思考
- mysql常用的日期加减函数与实例教程
- Microsoft SQL Server 混合云博客系列
- 用pl/sql自己编写简单的存储过程及jdbc调用存储过程
- 常见的预处理命令及功能
- 利用C++模板,代替虚函数,实现类的静态多态性(加入性能测试部分)
- Android获取手机制作商,系统版本等
- listView 单选项
- 使用Ant打包android程序