我有一个传统的ASP页面,向我的ASP.net(c#)页面“doSomething.ashx”发出一个XMLHTTP请求。它们都托管在同一台服务器上。保证请求来自本地服务器
如何保证请求来自本地服务器,阻止恶意用户访问doSomething.ashx页面并发出错误的请求?
编辑:
愚蠢的我忘记了我+ PW通过传递用户名,但将:
HttpContext.Current.Request.IsLocal
工作一样好?或者这可能会受创意黑客的困扰?
我有一个传统的ASP页面,向我的ASP.net(c#)页面“doSomething.ashx”发出一个XMLHTTP请求。它们都托管在同一台服务器上。保证请求来自本地服务器
如何保证请求来自本地服务器,阻止恶意用户访问doSomething.ashx页面并发出错误的请求?
编辑:
愚蠢的我忘记了我+ PW通过传递用户名,但将:
HttpContext.Current.Request.IsLocal
工作一样好?或者这可能会受创意黑客的困扰?
在HttpRequest对象,还有一个属性:
context.Request.IsLocal
这个布尔请求是否来自同一台机器是真的!
MSDN文档:
很简单,您验证请求。
请问HttpContext.Current.Request.IsLocal的工作? – 2011-01-26 12:06:18
您需要添加一些对该请求/会话唯一的令牌。 如果只是通过身份验证,您可以保证它来自具有详细信息的人,但仍可以从该用户“伪造”。
您可以检查所有“已知”标记的过期时间,也可以使用基于会话的系统并检查它在请求处理程序中是否有效。
如果只使用标记。您需要在发出发出请求的页面时在服务器上生成它们,然后在处理请求本身时进行检查。
你有没有想过加入一些认证请求的?通过HTTP或在您的请求中使用uid/pwd组合? – Lazarus 2011-01-26 12:03:10
谢谢!这将工作 – 2011-01-26 12:06:36