应用程序完整性&网址篡改

时间:2009-10-18 16:10:08

标签: security

在我的网站上,人们可以提出问题和答案。问题在example.com/question/title。要发布答案,表单将提交至example.com/question/post_answer/7,其中7为问题ID。

在此处运行验证以确保输入答案。如果没有,它会将您带回原始网址。因此,post_answer路径实际上从未被用户“看到”,但他们显然可以访问它。

我现在想知道,如果用户将问题的ID更改为8,他可以发布另一个问题的答案。

这不是真正安全问题,因为所有用户都会回答另一个问题。但我想知道 - 在这种情况下,你如何阻止这种网址篡改:将问题ID存储在会话中并显示错误,如果它被改变了?

思想?

1 个答案:

答案 0 :(得分:0)

会话是一种方式。另一种方法是使用某种消息认证码(MAC)。通常,您使用HMAC并将代码存储在cookie或URL的一部分中(即GET参数)。