У меня проблема
Посмотреть
<form method="post" action="test/csrf"> <input type="hidden" name="<?=$this->security->get_csrf_token_name();?>" value="<?=$this->security->get_csrf_hash();?>">
контроллер
echo $this->input->post($this->security->get_csrf_token_name());
Я не могу показать код токена
Доступ к токену Csrf в контроллере
В контроллере вы можете получить имя и значение csrf, как следует
echo $this->security->get_csrf_token_name(); // for the name echo $this->security->get_csrf_hash(); // for the value
Включить CSRF в файле конфигурации
$config['csrf_regenerate'] = TRUE;
- Используемые токены CSRF с использованием хелпера формы
У нас есть два способа добавить токены CSRF; если мы хотим обновить форму с помощью класса хелпера CodeIgniter, то токены CSRF будут добавлены автоматически или если вы собираетесь настраивать в пользовательской форме, тогда нам нужно добавить собственное скрытое имя ввода и его значение.
Когда мы будем использовать вспомогательный класс формы:
<?php echo form_open(base_url( 'user/login' ), array( 'id' => 'login', 'class' => 'login' ));?> <input type="text" name="username" /> <input type="password" name="password" /> <input type="submit" name="submit" value="Submit" /> <?php echo form_close();?>
С помощью класса хелпера класса автоматически добавляется вход, введенный в форму со случайным значением токена, чтобы предотвратить CSRF.
- Когда мы используем пользовательскую форму:
Нам нужно добавить входной файл, чтобы предотвратить нашу пользовательскую форму с 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'];?>" />
Если вы используете хелпер формы, форма form_open () автоматически вставляет скрытые поля csrf в ваши формы. Если не,
Затем вы можете использовать get_csrf_token_name () и get_csrf_hash ()
http://www.codeigniter.com/user_guide/libraries/security.html
http://www.sks.com.np/secure-your-codeigniter-application-using-csrf-token/