Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何阻止用户更改查询字符串_C#_Asp.net_Asp.net 3.5 - Fatal编程技术网

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

C# 如何阻止用户更改查询字符串,c#,asp.net,asp.net-3.5,C#,Asp.net,Asp.net 3.5,如何保护url不受用户更改其中一个参数/值对的影响 谢谢。你不能 您需要验证它们。您应该确保页面只接受每个参数的有效输入。“有效”可能意味着很多事情,比如“用户是否有权查看此内容”等等。您不能。根据定义,它是一个外部接口。如果您的系统的安全性依赖于此,您应该重新考虑它是如何实现的。您可以对它们进行加密或散列,并保留实际值交叉请求。您可以使用仅存储在服务器上的安全随机密钥添加查询字符串的HMAC散列,然后验证每个请求的哈希值。保护它和防止更改是两件不同的事情。您不能阻止他们更改它,但您可以保护/验

如何保护url不受用户更改其中一个参数/值对的影响

谢谢。

你不能


您需要验证它们。您应该确保页面只接受每个参数的有效输入。“有效”可能意味着很多事情,比如“用户是否有权查看此内容”等等。

您不能。根据定义,它是一个外部接口。如果您的系统的安全性依赖于此,您应该重新考虑它是如何实现的。

您可以对它们进行加密或散列,并保留实际值交叉请求。

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

保护它和防止更改是两件不同的事情。您不能阻止他们更改它,但您可以保护/验证。

可能与:是的,您可以。看我的答案。不,你不能。你只能检测到它。任何人都可以搞乱地址栏。如果你把它隐藏起来,任何人都可以在浏览器的开发工具中截取并弄乱它,或者使用代理。@Slacks:如果你认为它的意思是“你可以”,那么你对你的解决方案的理解就会令人失望。严格来说,您不能(否则,您没有Web服务器)。你的方法是验证,就像我上面说的。这并不阻止任何人改变任何事情。它只允许您检测到有人更改了某些内容。@John:检测到后,您可以立即停止并返回空白页。如果用户不能从改变它得到任何好处,我会认为是无法改变它。是的,但问题是如何阻止用户做某事。你可以检测到它,你可以从中恢复过来,但没有办法阻止它。@13很高兴听到这一点,因为真正阻止他们这样做的唯一方法是要么弄坏他们的机器,要么弄断他们的手指;)重要的是要明白,事实上你甚至有这个解决方案,这意味着你不能。理解任何输入数据都是可以更改的,这是非常重要的,因此您需要实施一种策略来防止它(如您所建议的,HMAC)。但是在做这样的事情时,你需要非常小心,不要做错。(这不是小事)。