CSRF 預防

CSRF 代表跨站點請求偽造。你可以通過在 application / config / config.php 檔案中啟用選項來防止此攻擊,如下所示。

$config['csrf_protection'] = TRUE;

使用 form_open() 函式建立表單時,它會自動在隱藏欄位中插入 CSRF 令牌。你還可以使用 get_csrf_token_name()get_csrf_hash() 函式手動新增 CSRF 令牌。正如他們的名字所暗示的,get_csrf_token_name() 函式將返回 CSRF 令牌的名稱,而 get_csrf_hash() 將返回雜湊。

CSRF 令牌可以在每次提交時重新生成,也可以在 CSRF cookie 的整個生命週期內保持相同。設定配置選項’csrf_regenerate’將強制重新生成令牌,如下所示。

$config['csrf_regenerate'] = TRUE;

你可以使用金鑰“csrf_exclude_uris”在配置陣列中為它們設定匹配,從而將 CSRF 保護列入白名單,如下所示。你還可以使用正規表示式。

$config['csrf_exclude_uris'] = array('api/person/add');