2010-11-10 52 views
1

我有一个受CSRF标记保护的表单。我不知道CSRF令牌的所有细节,但我听说他们很有必要保证表单安全。当表单提交得太晚时,表单会提供错误,所以CSRF令牌似乎按预期工作。保护表单使用ajax提交:有或没有csrf标记

在另一方面,当我提交表单与AJAX,我怎么能验证表单以同样的方式我验证范式?我不认为我会有一个表单对象来验证。

  • 使用ajax会有风险吗?
  • 当我接受ajax调用时,如何验证它与验证正常表单的方式相同?
  • 我想通过与请求(如API密钥),以证明该呼叫正从我的应用程序做了重点,但我怎能从肉眼此项?

回答

1

使用ajax会有风险吗?

不是真的比任何其他请求到服务器更多的风险。

当我接受ajax调用时,如何验证它与验证正常表单一样?

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

你可能会想分享在服务器端的代码。创建一个通用的方法/函数/无论处理表单,给定键/值对。唯一与AJAX不同的是,键/值对是如何发送到服务器的,以及格式化的响应是什么。从这些细节中隔离验证代码,你可以从两个地方调用它。

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

我以为通过一个密钥与请求(如API密钥)来证明该呼叫是从我的应用程序,但我怎么能保持这个从肉眼看不出来?

这将是毫无意义的。 JavaScript是以纯文本形式发送的,所以任何知道JavaScript的人都可以提取密钥。