一部のコントローラーでのみ csrf 保護をオンにしたいので、
function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('tank_auth');
$this->load->helper(array('form', 'url'));
$this->load->model('user_model', '', true);
$this->config->set_item('csrf_protection', TRUE);
}
ページで var_dump($this->config) を実行すると、csrf_protection が TRUE であることが示されますが、Cookie が設定されておらず、フォームに値のない非表示フィールドがありますが、機能していないようです。
<input type="hidden" name="ci_csrf_token" value="" />
csrf トークン名と Cookie 名がすべて設定され、フォームは form_open() で呼び出されます。
どんな助けでも大歓迎です。
更新:したがって、バージョン 2.1.1 からはセキュリティ クラス コンストラクトの行のため、これは不可能です。if (config_item('csrf_protection') === TRUE) {
セキュリティクラスはコントローラーの前に初期化されるため、コントローラーの構成項目の変更が影響しないのは当然です。