【发布时间】:2017-07-10 07:16:13
【问题描述】:
我是 codeigniter 的新手,如何在表单中验证 CSRF 令牌。
我的表格是:
<?php echo form_open('admin/create_cta', array('class' => 'navbar-form navbar-left', 'id' => 'new-cta')); ?>
<div class="form-group">
<input type="url" class="form-control" id="navbar-search-input" name="url" placeholder="Enter a URL">
<span class="form-group-btn">
<button type="submit" class="btn btn-info btn-flat">Create CTA</button>
</span>
</div>
<?php echo form_close(); ?>
config.php
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller {
public function create_cta()
{
$data = $this->input->post();
var_dump($data);
}
}
我没有得到 csrf 输入值。这里是“var_dump($data);”结果。
array (size=1)
'url' => string 'https://www.google.co.in/' (length=25)
【问题讨论】:
-
检查生成的表单 html。你那里有 csrf-field 吗?
-
在表单中使用 form_open()
-
只是为了观察它的创建...使用您的浏览器,查看页面然后检查源...查看生成的表单代码并查看 csrf 令牌是否包含在表单中问题。
-
请告诉我如何进行 csrf 验证?
标签: php codeigniter-3