【问题标题】:How to secure my generic handler calls?如何保护我的通用处理程序调用?
【发布时间】:2011-03-13 19:26:44
【问题描述】:

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

【问题讨论】:

    标签: asp.net ajax security httphandler


    【解决方案1】:

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

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

    此外,您可以检查 UrlReferrer != null 那么域名必须与您传入的请求 url 匹配,例如

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

    【讨论】:

      【解决方案2】:

      这是 100% 不可能的。每个人都可以访问您的 javascript,并且可以根据需要对其进行修改。他们可以使用TamperData 查看浏览器发出的所有请求并删除/修改/重放它们。

      【讨论】:

      • 将能够从同一域调用它,否则 Pritam Baldota 将停止它
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-07
        • 2012-07-14
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 2017-11-05
        • 1970-01-01
        • 2016-03-15
        相关资源
        最近更新 更多