在自定义AJAX表单提交中防止CSRF

时间:2012-02-14 04:47:06

标签: security drupal drupal-7 csrf drupal-forms

我向this question询问了使用Drupal 7的Forms API的原因,而不仅仅是自己处理表单提交请求,最后调用node_save()comment_save()这样的函数。虽然使用Forms API有各种各样的原因,但只引发了一个可能的安全漏洞:通过不使用Drupal 7的Forms API,我会错过它使用的CSRF预防技术。根据我的阅读,这基本上涉及使用令牌来验证请求。

我的问题有两个:

  1. 是否可以在我编写的脚本中利用Drupal的CSRF预防令牌方法来处理Ajax请求,从而完全消除了我假设不使用Forms API所带来的额外风险?如果是这样,怎么样?
  2. Forms API是否采用了我应该实现的令牌以外的技术?
  3. 请注意,我不希望这个问题成为我是否应该使用Forms API的讨论。

1 个答案:

答案 0 :(得分:1)

令牌由drupal_get_token()生成,并使用drupal_valid_token()验证。