在没有表单的情况下获取Codeigniter CSRF令牌?

Mot*_*ive 16 php ajax codeigniter

我在我的站点上启用了CSRF保护,但CSRF令牌放置在隐藏字段中的唯一时间form_close()是使用时间.我通过ajax发布数据,并且需要发送CSRF以防止500错误.

我认为有一种方法可以将CSRF令牌明确地嵌入到页面中,但我似乎无法找到它.

如果页面上没有表单,我如何获得CSRF令牌?

Nar*_*arf 42

您可以通过安全性类获取CSRF令牌名称和值:

$this->security->get_csrf_hash();
$this->security->get_csrf_token_name();
Run Code Online (Sandbox Code Playgroud)

  • 很奇怪,在文档中找不到,但这正是我想要的.谢谢 (5认同)
  • 谢谢..你可以让我知道如何验证它. (2认同)

Ray*_*iez 12

以这种方式将其添加到表单中

<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
Run Code Online (Sandbox Code Playgroud)