我在PHP 5.6 Apache Ubuntu 16.04中使用Codeigniter 3.1.5。 CSRF令牌在配置中设置为TRUE,如下所示:
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'name_token';
$config['csrf_cookie_name'] = 'name_cookie';
$config['csrf_expire'] = 600;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
我使用form_open()
,因此令牌会自动以CI形式插入。起初,它似乎工作正常。然而,我试图通过删除一些字符来操纵令牌/甚至删除所有令牌槽检查元素并提交表单以查看它是否真的有效。我很惊讶CI没有显示“你请求的动作是不允许的”页面结果。我还尝试使用表单标记,因此我手动编写<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />
。再次对令牌进行一些操作之后,它没有显示“您所请求的操作不被允许”页面作为结果。知道为什么吗?