CSRF使用Angular.js和PHP CodeIgniter后端

时间:2014-08-18 18:52:40

标签: javascript php angularjs codeigniter csrf

我正在尝试使用Angular.js和CodeIgniter实现CSRF,但是,我不确定我的方法是否安全。

当Angular发送帖子,发送或删除请求时,我在PHP中有一个自定义安全类,请检查请求中的$ _SERVER [' HTTP_COOKIE']。如果它包含CSRF cookie,我会根据$ _COOKIE变量中的值验证它。

我不确定这些是否总是相同的值,而不是实际上做什么或什么。有没有更好的方法来处理这个问题?

1 个答案:

答案 0 :(得分:0)

我没有使用角度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。