2

我在http://www.mywebsite.com/hello.aspx页面中使用这样的帖子:

$.post("handler.ashx", {}, function (x) { alert(x); });

如何检查处理程序运行的地址?

public void ProcessRequest (HttpContext context) 
{
    // check if request is from http://mywebsite/hello.aspx          

    context.Response.ContentType = "text/plain";
    context.Response.Write("test");
}

或者...如何禁用来自不同域的请求处理程序?

4

1 回答 1

2

您可以使用UrlReferrer检查呼叫是否来自您的站点。一个非常简单的工作示例:

if( !context.Request.UrlReferrer.Contains("site.com/")) ) 
{
   context.Response.End();
   return;
}

在极少数情况下,用户会覆盖引用者,这会失败。

于 2013-06-06T08:27:09.043 回答