如何确保http请求来自特定用户?

时间:2012-01-04 17:30:12

标签: java web-services rest security

我正在为网站编写附加服务,该服务利用现有的登录行为,同时需要用户提供一些额外的注册详细信息。新服务在不同的子域中运行。

用户将能够在我的数据网络应用上创建资源,必须根据该用户的数据集保存这些资源。

我希望这个用户标识符将传递给http请求正文中的webapp。但是,我担心恶意攻击可能会重写正文中的用户名,使请求看起来好像来自其他用户。

我可以做些什么来使这更安全? (这是否算作CSRF攻击?)

新服务是用Java编写的,Spring 3。

2 个答案:

答案 0 :(得分:5)

您永远无法确保来自特定用户的http请求,您只能尝试验证用户和请求。通常,这是通过在登录或身份验证过程中创建故障单,然后在后续请求中要求该故障单来完成的。然后,您可以将票证与用户匹配,并将其视为有效。票证在一段时间不活动后到期,要求用户再次登录。

答案 1 :(得分:0)

您应该尽可能通过主网站使用的相同安全堆栈传递请求。

如果不可能,我会使用Spring Security来处理身份验证。我不确定Spring Security已经存在哪些插件来验证这样的服务请求,但是你总是可以要求将cookie用于会话,然后只需要客户端来处理身份验证步骤。

因此,您可以使用“正常”表单登录,或者您可以将令牌请求设置放在一起,但这更为复杂。