Asp.net 如何保护我的通用处理程序调用?

Asp.net 如何保护我的通用处理程序调用?,asp.net,ajax,security,httphandler,Asp.net,Ajax,Security,Httphandler,我正在创建一个myspace应用程序,对于一些数据库条目,我正在使用我在另一个网站上托管的通用处理程序。在我的myspace应用程序中,我使用ajax调用这些处理程序来执行我想要的活动。我想知道如何使这些ajax调用安全?我的意思是,我想确保处理程序只由myspace应用程序调用,而不是通过在浏览器中输入url等方式调用。有什么想法吗?这是100%不可能的。每个人都可以访问您的javascript,并可以根据自己的意愿对其进行修改。它们可用于查看浏览器发出的所有请求,并删除/修改/重播这些请求

我正在创建一个myspace应用程序,对于一些数据库条目,我正在使用我在另一个网站上托管的通用处理程序。在我的myspace应用程序中,我使用ajax调用这些处理程序来执行我想要的活动。我想知道如何使这些ajax调用安全?我的意思是,我想确保处理程序只由myspace应用程序调用,而不是通过在浏览器中输入url等方式调用。有什么想法吗?

这是100%不可能的。每个人都可以访问您的javascript,并可以根据自己的意愿对其进行修改。它们可用于查看浏览器发出的所有请求,并删除/修改/重播这些请求

我不太了解myspace应用程序,但它有服务器组件吗?如果是这样,您可以首先从应用程序请求一个“令牌”,这将是加密操作和一些任意超时,例如3秒。然后将令牌传递给泛型处理程序,泛型处理程序解密令牌,然后检查超时。如果有效,则执行解密操作


网络延迟和不同步时钟等外部因素可能会阻止某些操作的执行。这应该会阻碍简单的重播攻击,但仍然容易受到脚本攻击。

您可以通过使用URLreferer来保护您的通用Web处理程序,例如

if (context.Request.UrlReferrer == null) 
 { 
      context.Response.Write("Invalid Request"); 
      return; 
 }
此外,您还可以检查URLreferer!=空,则域名必须与您的传入请求url相匹配,例如

 if(Request.UrlReferrer.ToString().indexOf("http://www.tyamjoli.com")!=-1)
 {
 //Valid request 
 }

将能够从同一个域调用它,或者Pritam Baldota将阻止它