【问题标题】:AJAX security: POST or GET?AJAX 安全性:POST 还是 GET?
【发布时间】:2010-11-24 19:09:17
【问题描述】:

正如标题可能暗示的那样,我想知道 AJAX 请求更安全的是什么:POST 或 GET。我无法确定哪个更好,因为由于发送的 URI,它们都对用户隐藏。 AJAX,不在 URL 栏中。

谢谢,

詹姆斯

【问题讨论】:

  • 谢谢大家的回答!它们都很好,但我只能将最好的标记为正确的。为你们所有人投票,但是:) 感谢人们的投入!

标签: ajax post get


【解决方案1】:

既不针对中间人攻击或最终用户添加任何安全措施。两者都可以使用 Wireshark、Firebug 或其他工具进行拦截和篡改。

如果您想要防止拦截,您可以使用 HTTPS。不过,这并不妨碍用户手动发送请求。

【讨论】:

    【解决方案2】:

    检查 post 的内容和获取值几乎是非常容易的。如果您不希望用户能够直接获取该数据,最好的选择是对其进行加密和/或通过 ssl 发送。

    【讨论】:

    • 加密对用户不安全。他们仍然可以手动发送加密请求,还有像 Fiddler 这样的工具可以轻松检查 HTTPS 流量。
    • 我同意用户理论上可以发送加密请求,但希望他们不会知道您的私钥,这将很难成功。
    • V,用户将拥有对任何客户端私钥的完全访问权限,无论是 SSL 客户端证书,还是硬编码到 JavaScript 中。
    【解决方案3】:

    在 AJAX 中使用的 POST 和 GET 之间没有安全差异。它们不会对用户隐藏——像 Fiddler 这样的简单工具可以让用户看到这些请求。两者中的有效负载都是纯文本的(即,当您的脚本创建它时)。唯一的区别是 POST 负载在请求的正文中,而 GET 负载在 URL 的查询参数中。

    【讨论】:

      【解决方案4】:

      它们根本不会对用户隐藏;在 FireFox 上安装 FireBug,他们就能看到 URI。您使用 GET 和 POST 的选择取决于发送的数据;如果您使用 REST 标准,则取决于操作。

      处理 AJAX 调用,就像处理通过表单和地址栏来自客户端的信息一样:验证和净化。

      【讨论】:

        【解决方案5】:

        他们可以查看页面源代码并查看您的目标 URL 的位置以及正在传递的参数。

        【讨论】:

          猜你喜欢
          • 2012-01-15
          • 2016-07-03
          • 2015-08-21
          • 1970-01-01
          • 2010-12-28
          • 2011-04-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多