簡體   English   中英

CSRF使用Angular.js和PHP CodeIgniter后端

[英]CSRF using Angular.js with PHP CodeIgniter backend

我正在嘗試使用Angular.js和CodeIgniter實現CSRF,但是我不確定我的方法是否安全。

當Angular發送帖子,放置或刪除請求時,我在PHP中有一個自定義安全類,它從請求中檢查$ _SERVER ['HTTP_COOKIE']。 如果它包含CSRF cookie,請對照$ _COOKIE變量中的值進行驗證。

我不確定這些值是否始終是相同的值,實際上沒有做任何事情。 有什么更好的方法可以應對嗎?

我沒有使用angular JS,而是使用了codeigniter。 對於csrf保護,codeigniter提供了安全類,用於通過表單為各個請求提供安全令牌(或csrf cookie)。 現在,您只需要在配置文件下啟用此功能:

Location: application/config/config.php
Default Code: $config['csrf_protection'] = FALSE;
Change it to: $config['csrf_protection'] = TRUE;

通過使其為真,它會自動以表格形式插入安全令牌,並在服務器端進行驗證。 您可以通過以下配置設置在同一文件中更改令牌名稱和cookie名稱:

$config['csrf_token_name']
$config['csrf_cookie_name']

重要的一點是,如果刷新頁面,則安全令牌不會更改,或將其視為當前用戶會話的相同安全令牌。 我在Codeigniter中發現了一些缺點。 如果要使用ajax實現相同的實現,則需要添加用於傳遞令牌名稱或值的手動代碼,或者對所有請求使用ajaxSetup。

通過這種方式,您可以在某個級別上實現csrf保護,如果您想要更多的安全性,則可以根據項目需要檢查httponly cookie或ssl deployemnt。

暫無
暫無

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

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