简体   繁体   English

Codeigniter如何进行csrf验证?

[英]Codeigniter how to csrf validation?

I am new in codeigniter how to validate CSRF token inside a form. 我是Codeigniter的新手,如何验证表单内的CSRF令牌。

My form is: 我的表格是:

<?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.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();

Controller 控制者

<?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);
    }

}

I Am not getting csrf input value. 我没有得到csrf输入值。 Here it is "var_dump($data);" 这是“ var_dump($ data);” result. 结果。

array (size=1)
  'url' => string 'https://www.google.co.in/' (length=25)

You can get Csrf token value like, 您可以像这样获得Csrf令牌值,

$csrf = array(
    'name' => $this->security->get_csrf_token_name(),
    'hash' => $this->security->get_csrf_hash()
);

...

<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />

Refer this Link https://www.codeigniter.com/user_guide/libraries/security.html 请参阅此链接https://www.codeigniter.com/user_guide/libraries/security.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM