Javascript CSRF使用Angular.js和PHP CodeIgniter后端

Javascript CSRF使用Angular.js和PHP CodeIgniter后端,javascript,php,angularjs,codeigniter,csrf,Javascript,Php,Angularjs,Codeigniter,Csrf,我试图用Angular.js和CodeIgniter实现CSRF,但是,我不确定我的方法是否安全 当Angular发送post、put或delete请求时,我在请求的PHP check$\u服务器['HTTP\U COOKIE']中有一个自定义安全类。如果它包含CSRF cookie,我将根据$\u cookie变量中的值对其进行验证 我不确定这些是否总是相同的价值观,而不是实际做什么或做什么。有没有更好的方法来处理这个问题?我没有使用angular JS,而是使用codeigniter。对于c

我试图用Angular.js和CodeIgniter实现CSRF,但是,我不确定我的方法是否安全

当Angular发送post、put或delete请求时,我在请求的PHP check$\u服务器['HTTP\U COOKIE']中有一个自定义安全类。如果它包含CSRF cookie,我将根据$\u 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 cookies或ssl deployemnt