【发布时间】:2025-11-23 01:15:02
【问题描述】:
我正在使用 codeigniter,并且我在 config.php 中启用了 csrf,如下所示。
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_token';
$config['csrf_cookie_name'] = 'csrf_cookie';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
然后为了避免错误“遇到错误。不允许您请求的操作。”我已将以下代码添加到 Web 视图中的每个表单中。
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
此代码生成一个令牌并清除错误。但由于<?php echo $this->security->get_csrf_hash(); ?>,每个页面的令牌都是相同的。
当我通过查看源代码查看源代码时,网页令牌清晰可见。
我想知道这种方法是否可以防止csrf?或者我必须生成一个随机令牌?或者通过codeigniter防止csrf的最佳方法是什么。
【问题讨论】:
标签: php codeigniter csrf-protection