我正在使用codeigniter,並且已經在config.php中啓用了csrf,如下所示。CSRF保護Codeigniter生成隨機令牌
$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(); ?>">
此代碼生成令牌和錯誤是cleared.But令牌是相同的每一頁,因爲<?php echo $this->security->get_csrf_hash(); ?>
。
當我在網頁中查看源代碼的源代碼時,令牌清晰可見。
我想知道的是這種方法防止csrf?或者我必須生成一個隨機標記?或者什麼是通過codeigniter防止csrf的最好方法。