从 4.1.25 升级到 4.1.26

2018-02-24 15:51 更新

Laravel 4.1.26 采用了针对「记得我」cookies 的安全性更新。在此更新之前,如果一个记得我的 cookies 被恶意用户劫持,该 cookie 将还可以生存很长一段时间,即使真实用户重设密码或者注销亦同。

此更动需要在你的 users (或者类似的) 的数据表中增加一个额外的 remember_token 字段。在更新之后,当用户每次登录你的应用程序将会有一个全新的 token 将会被指派。这个 token 也会在用户注销应用程序后被更新。这个更新的影响为:如果一个「记得我」的 cookie 被劫持,只要用户注销应用程序将会废除该 cookie。

升级路径

首先,增加一个新的字段,可空值、属性为 VARCHAR(100)、TEXT 或同类型的字段 remember_token 到你的 users 数据表中。

然后,如果你使用 Eloquent 认证驱动,依照下面更新你的 User 类别的三个方法:

public function getRememberToken()
{
    return $this->remember_token;
}

public function setRememberToken($value)
{
    $this->remember_token = $value;
}

public function getRememberTokenName()
{
    return 'remember_token';
}

附注: 所有现存的「记得我」sessions 在此更新后将会失效,所以应用程序的所有用户将会被迫重新登录。

组件管理者

两个新的方法被加入到 Illuminate\Auth\UserProviderInterface 接口。范例实现方式可以在默认驱动中找到:

public function retrieveByToken($identifier, $token);

public function updateRememberToken(UserInterface $user, $token);

Illuminate\Auth\UserInterface 也加了三个新方法描述在「升级路径」。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号