我有一个经典的ASP页面向我的ASP.net(c#)页面“doSomething.ashx”发出XMLHTTP请求。它们都托管在同一台服务器上。
如何保证请求来自本地服务器,阻止恶意用户访问doSomething.ashx页面并提出错误请求?
修改
愚蠢我忘了我可以通过用户名+ pw通过,但会:
HttpContext.Current.Request.IsLocal
同样工作?或者这可能会受到有创造力的黑客的影响?
答案 0 :(得分:9)
在HttpRequest对象中,有一个属性:
context.Request.IsLocal
如果请求来自同一台机器,则此布尔值为true!
MSDN文档:
答案 1 :(得分:2)
您需要添加一些对该请求/会话唯一的令牌。 如果它只是经过身份验证,您可以保证它来自有详细信息的人,但仍然可以被该用户“伪造”。
您可以检查所有已知到期的“已知”令牌,也可以使用基于会话的系统并在请求处理程序中检查它是否有效。
如果只使用令牌。在发出发出请求的页面时,您需要在服务器上生成它们,然后在处理请求时检查它。
答案 2 :(得分:1)
简单,您可以验证请求。