訪問令牌CSRF在控制器
在控制器u能得到名稱和CSRF的價值遵循
echo $this->security->get_csrf_token_name(); // for the name
echo $this->security->get_csrf_hash(); // for the value
在配置文件中啓用CSRF利用
$config['csrf_regenerate'] = TRUE;
- 二手CSRF令牌形式幫手
我們有兩種方法來添加CSRF令牌;如果我們想用CodeIgniter表單助手類更新你的表單,那麼CSRF標記將自動添加,或者如果你想在自定義表單中進行調整,那麼我們需要添加自定義隱藏的輸入名稱及其值。
當我們將使用形式的輔助類:
<?php echo form_open(base_url('user/login'), array('id' => 'login', 'class' => 'login'));?>
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="submit" value="Submit" />
<?php echo form_close();?>
使用表單輔助類會自動添加輸入魚貫進入形式隨機令牌值,以防止CSRF。
- 當我們使用自定義表單:
我們需要添加歸檔,以防止我們的CSRF自定義表單輸入。
$csrf = array(
'name' => $this->security->get_csrf_token_name(),
'hash' => $this->security->get_csrf_hash()
);
<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />
如果使用表單助手,那麼form_open()會自動在表單中插入一個隱藏的csrf字段。如果沒有,
然後你可以使用get_csrf_token_name()和get_csrf_hash()
http://www.codeigniter.com/user_guide/libraries/security.html
http://www.sks.com.np/secure-your-codeigniter-application-using-csrf-token/
,你不能顯示令牌代碼?視圖還是控制器? – Poonam