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

时间:2010-07-09 10:30:03

标签: asp.net ajax security httphandler

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

3 个答案:

答案 0 :(得分:2)

您可以通过使用UrlReferrer进行技巧来保护Generic Web Handler,例如

if (context.Request.UrlReferrer == null) 
 { 
      context.Response.Write("Invalid Request"); 
      return; 
 }

此外,您可以检查UrlReferrer!= null,然后域名必须与您的传入请求匹配,例如对于例如

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

答案 1 :(得分:0)

这是100%不可能的。每个人都可以访问您的JavaScript,并可以随意修改它。他们可以使用TamperData查看浏览器发出的所有请求,并删除/修改/重播它们。

答案 2 :(得分:0)

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

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