【问题标题】:Protecting form submit with ajax: with or without csrf token使用 ajax 保护表单提交:带或不带 csrf 令牌
【发布时间】:2011-05-08 01:03:47
【问题描述】:

我有一个受 CSRF 令牌保护的表单。我不知道 CSRF 令牌的所有细节,但我听说它们对于表单安全性来说是件好事。当表单提交得太晚时,表单会出现错误,因此 CSRF 令牌似乎正在按预期工作。

另一方面,当我使用 ajax 提交表单时,如何像验证普通表单一样验证表单?我认为我不会有一个表单对象来验证。

  • 使用 ajax 有风险吗?
  • 当我接受 ajax 调用时,如何像验证普通表单一样验证它?
  • 我想在请求中传递一个密钥(如 API 密钥)以证明调用是从我的应用程序发出的,但如何才能让这个密钥不被肉眼看到?

【问题讨论】:

    标签: php ajax security forms


    【解决方案1】:

    使用 ajax 有风险吗?

    实际上并没有比对您的服务器的任何其他请求更大的风险。

    当我接受 ajax 调用时,如何像验证普通表单一样验证它?

    我不知道,您现在如何验证表单? :)

    您可能希望在服务器端共享此代码。给定键/值对,创建一个通用的方法/函数/处理表单的任何东西。与 AJAX 唯一不同的是键/值对如何发送到服务器以及格式化的响应是什么。将验证代码与这些详细信息隔离开来,您就可以从这两个地方调用它。

    显然,AJAX 代码也应该发送 CSRF 令牌。

    我想通过请求传递一个密钥(如 API 密钥)以证明调用是从我的应用程序发出的,但我如何才能让这个密钥不被肉眼看到?

    这毫无意义。 JavaScript 以纯文本形式发送,因此任何了解 JavaScript 的人都可以提取密钥。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 2016-12-08
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2016-07-04
      • 2016-02-24
      • 2019-07-01
      • 2013-07-20
      相关资源
      最近更新 更多