CI框架ajax方式post数据时加上csrf验证

原理

1.生成一个token串放在cookies里面,

2.把上面那个token放在表单里面,

3.表单回传之后,对比cookies里面的这个token和post里面的token是否相等,不相等就返回错误,

4.为什么可以防御csrf呢,因为cookies是不会被第三方获取的。

下面这段就是一个验证通过示例:

$this ->security->csrf_verify();
        $_POST[$this ->security->get_csrf_token_name()]= $this ->security->get_csrf_hash();
        $_SERVER['REQUEST_METHOD']='POST';
        $this ->security->csrf_verify();
下面这段就是一个验证不通过示例:

$this ->security->csrf_verify();
        //$_POST[$this ->security->get_csrf_token_name()]= $this ->security->get_csrf_hash();
        $_SERVER['REQUEST_METHOD']='POST';
        $this ->security->csrf_verify();



你可能感兴趣的:(PHP)