В codeigniter,
всякий раз, когда пользователь проходит аутентификацию, я хочу создать случайный сеанс. Этот механизм будет использоваться для шифрования / дешифрования данных между view-контроллерами. Например, я смотрю, чтобы открыть форму, как показано ниже:
<?php echo form_open('targetcontrollerfunction/'.encryptionfunction(data_to_be_secured)); ?>
Таким образом, если кто-то идет на проверку элемента, он не может понять данные, которые передаются в контроллер.
Что я пробовал:
Я просмотрел документацию Codeigniter и несколько статей по stackoverflow и google. Они предлагают использовать библиотеку encryption
для генерации случайного ключа и библиотеку encrypt
для кодирования / декодирования данных с использованием этого ключа. Но проблема в том, что они хотят, чтобы я сохранил вновь сгенерированный ключ в $config["encryption_key"]
Здесь начинается проблема. В моей функции контроллера я проверяю учетную запись пользователя и устанавливаю некоторые переменные сеанса. В то же время я хочу, чтобы случайный ключ генерировался таким образом, чтобы он был на 100% уникальным для каждого пользователя, но когда я использую следующий код в своей функции контроллера:
$randomkey=bin2hex($this->encryption->create_key(16));
$config["encryption_key"]=$randomkey;
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));
, я также изменил его на :
$randomkey=bin2hex($this->encryption->create_key(16));
$config=array(
'encryption_key'=>$randomkey
);
$this->encryption->initialize($config);
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));
Я получаю сообщение об ошибке:
Для использования класса шифрования необходимо установить ключ шифрования в файле конфигурации.
* Библиотеки 1028 * не могут быть загружены в файл конфигурации. Файл php, ключ шифрования не может быть установлен внутри контроллера, я полностью сбит с толку. Как еще можно сгенерировать случайный ключ и использовать его для каждого сеанса?