Первый подход рекомендуется главным образом потому, что код CI - это хорошо проверенный, проверенный и проверенный код.Я предполагаю, что второй метод - это то, что вы намереваетесь написать сами.Если это так, вы изобретаете колесо без уважительной причины.
Используя CI-код, важно понимать, что хеш-значение токена не изменится, если вы не используете в config.php следующее:
$config['csrf_regenerate'] = TRUE;
Другая вещь, которую вам нужно знатьзаключается в том, что новый хеш будет сгенерирован только при запросе POST
к серверу.Это хорошо, потому что необходимость защиты CSRF актуальна только для POST
запросов.
Когда вы делаете несколько GET
запросов, т.е. загружаете <form>
несколько раз подряд, вы, скорее всего, будете видеть одно и то же значение хеша каждый раз.Но если вы отправите форму и затем перезагрузите ее, вы увидите новое хеш-значение.
Наконец, вы должны знать, что значения CSRF проверяются только для POST
запросов и не проверяются для GET
запросов.
Хеш-значение будет удалено из $_POST
после его успешной проверки.
Все вышеперечисленное происходит автоматически, если вы используете настройку $config
, показанную в сочетании с form_open()
.