在我的网站上,人们可以问问题和答案可以张贴。这个问题在example.com/问答/标题上。要发布答案,表单将提交给example.com/问答/ post _post/7,其中7为问题id。
在这里运行验证以确保输入了一个答案。如果没有,它会带你回到原来的网址。因此,post_answer路径实际上从未被用户“看到”,但他们显然可以访问它。
我现在想知道,如果用户将问题的id更改为8,他可以发布另一个问题的答案。
这并不是真正的安全问题,因为所有用户都会回答另一个问题。但我想知道--在这样的场景中,如何停止这种url篡改:将问题id存储在会话中,并在更改时显示错误?
有什么想法?
发布于 2009-10-18 16:16:55
治疗是一种方式。另一种方法是使用某种消息身份验证代码(MAC)。通常,您使用HMAC并将代码存储在cookie或URL的一部分(即GET参数)中。
https://stackoverflow.com/questions/1585261
复制相似问题