使用ajax保护表单提交:使用或不使用csrf令牌

时间:2010-11-10 17:58:20

标签: php ajax security forms

我有一个受CSRF令牌保护的表单。我不知道CSRF令牌的所有细节,但我听说他们对表单安全性有好处。当表单提交太晚时,表单会出错,因此CSRF令牌似乎按预期工作。

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

  • 使用ajax会有风险吗?
  • 当我接受ajax调用时,如何验证它与验证普通表单的方式相同?
  • 我想传递一个带有请求的密钥(比如一个API密钥)来证明我的应用程序正在调用,但是如何从肉眼看到这个密钥?

1 个答案:

答案 0 :(得分:1)

  

使用ajax会有风险吗?

实际上没有任何其他请求对您的服务器造成风险。

  

当我接受ajax调用时,如何验证它与验证普通表单的方式相同?

我不知道,你现在如何验证表格? :)

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

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

  

我想通过一个带有请求的密钥(比如一个API密钥)来证明我的应用程序正在进行调用,但是如何从肉眼看到这个密钥呢?

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