class CustomHttpRequest extends CHttpRequest {
protected function createCsrfCookie()
{
$cookie=new CHttpCookie($this->csrfTokenName,sha1(uniqid(mt_rand(),true)));
$cookie->secure = true; //Here is where you make your cookie secure
if(is_array($this->csrfCookie))
{
foreach($this->csrfCookie as $name=>$value)
$cookie->$name=$value;
}
return $cookie;
}
}
2条答案
按热度按时间wtzytmuj1#
将以下内容添加到配置中:
swvgeqrz2#
内置的CHttpRequest组件无法实现这一点。您需要从它派生并覆盖
createCsrfCookie()
来创建一个安全的cookie,如下所示:在组件配置中,指定自定义实现:
重要提示:要生成新的CSRF令牌,您需要启动新的浏览器会话。此外,您还需要使用HTTPS以使安全Cookie生效。
删除您的开发URI的所有Cookie,或启动一个私人会话(在Chrome或Firefox中)以启动一个新会话。