我需要一些关于如何保护我的应用程序的建议:
我有一个REST服务,使用Spring MVC 3
我有我的客户端应用程序,使用Ext GWT 2.2
用户凭据仅在服务器端可用。
SSL可用
REST服务只应由经过身份验证的用户使用。
我已经阅读了有关HTTP摘要,基于令牌的授权,oAuth等的内容,但我需要对如何保护我的应用程序以及哪些方法在我的情况下最好的方面做一些澄清和建议。
答案 0 :(得分:26)
这是我们为应用程序创建的方法,效果非常好,而且非常安全。
这是一个非常概念性的解释,有很多代码支持这个,仅供参考
当用户验证或创建帐户时,服务器返回x.509证书,base64编码,对用户而言是唯一的。服务器存储副本。
每次客户端需要访问REST API时,客户端都会创建一个由以下内容组成的JSON字符串。
用户唯一ID(用户ID)
然后我们将令牌放入每个调用的标头中,并将其称为:X-Auth-UserToken
在每次调用时,服务器获取令牌,根据userID查找用户证书,然后验证令牌的加密部分是否可以使用服务器为用户保存的私钥进行解密。
解密后,服务器获取CallID,并根据自己的calllog db验证它是唯一的。
如果签出,则用户已通过身份验证。
用户通过身份验证后,您可以根据用户uniqueID应用自己的授权规则。
当然,以上所有都是通过SSL。
如果您需要我深入研究任何部件,请告诉我。