如何通过跨域调用来阻止CSRF

时间:2012-06-22 22:43:17

标签: php javascript session csrf

现在我有情况,来自example.com的javascript可以访问网站test1.example.com。 我通过跨域域做到了这一点,我想阻止CSRF注入。

我想以标准的方式做到这一点 - 在服务器端 - 我在会话中创建哈希 - 保存哈希 但我不能这样做,因为当我在$ _SESSION中保存哈希并想要从客户端检查 - $ _SESSION是空的 - 因为它的另一个域(当通过服务器端的代理脚本意识到 - 没问题时)。 function check_csrf_token - 总是返回false。

服务器端的简单代码

public function get_csrf_token(){
    $token = md5(uniqid(mt_rand() . microtime()));
    $_SESSION['token'] = $token;
}


private function check_csrf_token($token){
    return ($_SESSION['token'] == $this->input->get('token'));
}

0 个答案:

没有答案