如何确保用户不会通过更改应该通过表单修改的对象的 id 来修改他想要的内容?
How to ensure that the user does not modify what he wants by changing the id of the object supposed to be modified via a form?
我有一个简单的问题,我正在寻找我可以在服务器端编写什么样的控件来避免这种情况:
通过表单,用户可以提交调查的答案。因此,当向服务器发送答案时,它会传输答案列表以及调查的 ID。但没有什么能阻止他修改调查的 ID 以将答案放在另一项调查中......我不知道如何防止这种情况?
您无法阻止用户更改 ID。但是,有一些方法可以确保他们不能通过更改 ID 来做一些邪恶的事情:
- 使用有效不可猜测的长随机 ID。然后更改ID将不会提交到不同的调查,而是显示错误。
- 使用登录身份验证并确保用户具有正确的权限来回答调查。这样一来,如果他们更改 ID,他们只能回答他们获得许可的调查。
- 为每个调查提供一个令牌。只能使用与 ID 绑定的有效令牌(通过加密签名或通过将令牌和 ID 存储在数据库中)提交回调查。
我有一个简单的问题,我正在寻找我可以在服务器端编写什么样的控件来避免这种情况:
通过表单,用户可以提交调查的答案。因此,当向服务器发送答案时,它会传输答案列表以及调查的 ID。但没有什么能阻止他修改调查的 ID 以将答案放在另一项调查中......我不知道如何防止这种情况?
您无法阻止用户更改 ID。但是,有一些方法可以确保他们不能通过更改 ID 来做一些邪恶的事情:
- 使用有效不可猜测的长随机 ID。然后更改ID将不会提交到不同的调查,而是显示错误。
- 使用登录身份验证并确保用户具有正确的权限来回答调查。这样一来,如果他们更改 ID,他们只能回答他们获得许可的调查。
- 为每个调查提供一个令牌。只能使用与 ID 绑定的有效令牌(通过加密签名或通过将令牌和 ID 存储在数据库中)提交回调查。