Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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/9/security/4.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/visual-studio-2008/2.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#_Security_Referrer - Fatal编程技术网

C# 保证请求来自本地服务器

C# 保证请求来自本地服务器,c#,security,referrer,C#,Security,Referrer,我有一个典型的ASP页面向我的ASP.net(c#)页面“doSomething.ashx”发出XMLHTTP请求。它们都托管在同一台服务器上 如何保证请求来自本地服务器,以阻止恶意用户访问doSomething.ashx页面并发出错误请求 编辑: 愚蠢的我忘了我可以通过用户名+密码,但是威尔: HttpContext.Current.Request.IsLocal 工作也一样好吗?或者这会受到创造性黑客的影响吗?很简单,您可以验证请求。您需要添加一些对该请求/会话唯一的令牌。 如果它只是经过

我有一个典型的ASP页面向我的ASP.net(c#)页面“doSomething.ashx”发出XMLHTTP请求。它们都托管在同一台服务器上

如何保证请求来自本地服务器,以阻止恶意用户访问doSomething.ashx页面并发出错误请求

编辑:

愚蠢的我忘了我可以通过用户名+密码,但是威尔:

HttpContext.Current.Request.IsLocal

工作也一样好吗?或者这会受到创造性黑客的影响吗?

很简单,您可以验证请求。

您需要添加一些对该请求/会话唯一的令牌。 如果它只是经过身份验证,您可以保证它来自具有详细信息的人,但仍然可以从该用户处“伪造”

您可以检查所有到期的“已知”令牌,或者使用基于会话的系统并在请求处理程序中检查其有效性


如果只使用代币。发送发出请求的页面时,需要在服务器上生成它们,然后在处理请求本身时进行检查。

在HttpRequest对象中,有一个属性:

context.Request.IsLocal
如果请求来自同一台机器,则此布尔值为真

MSDN文件:


您是否想过在请求中添加一些身份验证?要么通过HTTP,要么在请求中使用uid/pwd组合?我真的不知道,但我不会依赖它。我猜这会检查IP地址;但最好不要这样做。或者至少,考虑只结合一些真正的认证来做这件事。不管怎样,它将在未来帮助你,并且,它将描述你正在努力实现的目标。+1。除非有人真的破坏了你的IP堆栈,否则这是可行的。不过,它只能在本地主机上可靠工作。无法从另一台冒充127.0.0的计算机发出http请求(tcp协商将失败)。因此,理论上,您不需要使用此方法进行身份验证?如果您正在执行XMLHTTP请求,则将使用客户端浏览器和用户IP来完成。这将失败,因为IP不是本地的。改为使用会话令牌。