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');