现在我有情况,来自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'));
}