【问题标题】:Security: AJAX posts安全性:AJAX 帖子
【发布时间】:2013-08-18 02:27:09
【问题描述】:

假设我有一个即时生成的var(例如,一个返回用户 ID 的 Facebook API 调用)。然后我想使用 jQuery 的 AJAX 将此 var 发送到我自己的服务器。

我的问题 - 这安全吗?有人可以在 AJAX 发送到我的服务器之前拦截并插入他们自己的值吗?如果这不安全,如何进行此类 AJAX 帖子?

【问题讨论】:

    标签: ajax security


    【解决方案1】:

    是的,除非您使用 HTTPS,否则有人可以拦截它并更改值。因此,这基本上是确保安全的解决方案,以及某种身份验证系统。除此之外,请确保您没有在该 var 中存储任何机密信息,因为您的用户可以很容易地看到它的价值。

    【讨论】:

    • 感谢您的支持 - 但是 HTTPS 如何改变这一点?它将如何阻止用户动态更改 AJAX POST 数据?
    • HTTPS 不会阻止用户更改 POST 数据 - 它只会阻止其他人劫持和更改它。这就是为什么您需要一个身份验证系统并且可能需要某种权限系统的原因——然后,如果用户将值更改为其他值,您可以针对该资源授权他们,如果他们未获得授权,那么您将提供 401/403 响应而不是 200。
    【解决方案2】:

    验证/拉取 ID 服务器端,例如 http://graph.facebook.com/1303834107 :)

    【讨论】:

      【解决方案3】:

      有人可以在 AJAX 发送到我的服务器之前拦截并插入他们自己的值吗?

      这取决于您所说的“某人”。

      如果您说的是第三方攻击者,那么可能的攻击点是:

      1. 在 Facebook 的服务器和浏览器之间。如果您可以选择对该请求使用 SSL,那么这是在那里保护它的唯一方法。
      2. 在用户的浏览器中。这要求攻击者已经入侵了用户的计算机。您对此无能为力。
      3. 在浏览器和您的服务器之间。使用 SSL 来防御这种情况。

      如果您谈论的是浏览器用户,那么您无法阻止他们更改数据。用户可以完全控制他们的浏览器向您的服务器发送的内容。您唯一的防御措施是将他们的浏览器排除在外(这将涉及使用 OAuth 获得从您的服务器访问他们的 Facebook 帐户的权限)。

      【讨论】:

        猜你喜欢
        • 2011-10-26
        • 2011-08-28
        • 2023-03-11
        • 2012-01-15
        • 2011-07-17
        • 2016-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多