簡體   English   中英

如何僅在 PHP CodeIgniter 中的特定 url/頁面上使用 CSRF

[英]How to use CSRF only on a specifc url/page in PHP CodeIgniter

嗨,我正在嘗試使用 CodeIngiter 的 CSRF 機制。 但問題是我不想為每個 url/頁面使用它。 我只想將它用於特定的 url/頁面。

我有以下代碼。 我只希望對site_url('login')site_url('signup')進行 CSRF 檢查

但是 CSRF 發生在每一頁上。 如何讓 CSRF 忽略其他 URL 而只關注我上面指定的 2 個?

$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_checker';
$config['csrf_cookie_name'] = 'csrf_checker';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array('home', 'about', 'licenses');

選定的 URI 可以從 csrf 保護中列入白名單(例如,需要外部發布內容的 API 端點)。 您可以通過編輯“csrf_exclude_uris”配置參數來添加這些 URI:

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

還支持正則表達式(不區分大小寫):

$config['csrf_exclude_uris'] = array(
        'api/record/[0-9]+',
        'api/title/[a-z]+'
);

參考: https : //www.codeigniter.com/user_guide/libraries/security.html? highlight = csrf#cross-site-request-forgery- csrf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM