保证请求来自本地服务器

时间:2011-01-26 11:59:15

标签: c# security referrer

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

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

修改

愚蠢我忘了我可以通过用户名+ pw通过,但会:

HttpContext.Current.Request.IsLocal

同样工作?或者这可能会受到有创造力的黑客的影响?

3 个答案:

答案 0 :(得分:9)

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

context.Request.IsLocal

如果请求来自同一台机器,则此布尔值为true!

MSDN文档:

The IsLocal property returns true if the IP address of the request originator is 127.0.0.1 or if the IP address of the request is the same as the server's IP address.

答案 1 :(得分:2)

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

您可以检查所有已知到期的“已知”令牌,也可以使用基于会话的系统并在请求处理程序中检查它是否有效。

如果只使用令牌。在发出发出请求的页面时,您需要在服务器上生成它们,然后在处理请求时检查它。

答案 2 :(得分:1)

简单,您可以验证请求。