如何阻止用户更改查询字符串

O.O*_*O.O 3 c# asp.net asp.net-3.5

如何保护用户更改其中一个参数/值对的URL?

谢谢.

Noo*_*ilk 7

你不能.

你需要验证它们.您应确保您的页面仅接受每个参数的有效输入."有效"可能意味着许多事情,例如"用户是否有权查看此内容"等等.


SLa*_*aks 6

您可以使用仅存储在服务器上的安全随机密钥添加查询字符串的HMAC哈希值,然后在每个请求上验证哈希值.

  • 这并不妨碍任何人改变任何事情.它只允许你*检测*有人改变了什么. (3认同)
  • 是的,但问题是如何阻止用户做某事.你可以检测它,你可以从它恢复,但没有办法*阻止*它. (3认同)
  • @John:检测到后,可以立即停止并返回空白页。如果用户无法从更改中获得任何好处,我会认为无法更改它。 (2认同)
  • @ subt13很高兴听到这一点,因为实际上阻止他们这么做的唯一方法就是弄乱他们的机器或弄坏他们的手指;) (2认同)