Jag*_*uar 43 security rest session oauth jersey
我正在尝试在我的REST服务中实现会话管理.我在冲浪时了解了这些指南:
不使用服务器端会话 - 它违反了RESTful原则.
使用HTTP基本身份验证 - 现在不可能,因为我被要求不使用SSL/TLS(毫无疑问需要Basic身份验证.)
使用Http摘要 - 我听说这会增加网络流量.这听起来很昂贵,尤其是当我的客户端是移动设备时.
使用cookies - 我被告知我不应该依赖cookie来保护我的重要资源,它们可以很容易地被欺骗.另外,我通过cookie了解了跨站点脚本攻击.
我留下了生成身份验证令牌的选项,用户每次都必须发送 - 我承认这不是"完全"RESTful.
现在我需要知道,我应该如何生成这些唯一的身份验证令牌,这些令牌在业务级别上足够安全?泽西岛有一些图书馆吗?我应该去OAuth.我刚刚读了一些关于它们的内容,它们对我来说有用吗?请记住,我的目标客户端是移动设备 - 他们可以访问OAuth服务吗?
lim*_*imc 38
为简单起见,我UUID在使用Jasypt加密整个令牌之前使用我生成自己的身份验证令牌: -
String key = UUID.randomUUID().toString().toUpperCase() +
        "|" + someImportantProjectToken +
        "|" + userName +
        "|" + creationDateTime;
StandardPBEStringEncryptor jasypt = new StandardPBEStringEncryptor();
...
// this is the authentication token user will send in order to use the web service
String authenticationToken = jasypt.encrypt(key);
密钥包含,creationDateTime以便我可以使用它来验证生存时间.这样,如果用户在X分钟后使用相同的身份验证令牌,它将不再起作用,我将发回403禁用代码.
| 归档时间: | 
 | 
| 查看次数: | 30428 次 | 
| 最近记录: |