從 4.1.25 升級(jí)到 4.1.26

2018-02-24 15:51 更新

Laravel 4.1.26 采用了針對(duì)「記得我」cookies 的安全性更新。在此更新之前,如果一個(gè)記得我的 cookies 被惡意用戶劫持,該 cookie 將還可以生存很長(zhǎng)一段時(shí)間,即使真實(shí)用戶重設(shè)密碼或者注銷亦同。

此更動(dòng)需要在你的 users (或者類似的) 的數(shù)據(jù)表中增加一個(gè)額外的 remember_token 字段。在更新之后,當(dāng)用戶每次登錄你的應(yīng)用程序?qū)?huì)有一個(gè)全新的 token 將會(huì)被指派。這個(gè) token 也會(huì)在用戶注銷應(yīng)用程序后被更新。這個(gè)更新的影響為:如果一個(gè)「記得我」的 cookie 被劫持,只要用戶注銷應(yīng)用程序?qū)?huì)廢除該 cookie。

升級(jí)路徑

首先,增加一個(gè)新的字段,可空值、屬性為 VARCHAR(100)、TEXT 或同類型的字段 remember_token 到你的 users 數(shù)據(jù)表中。

然后,如果你使用 Eloquent 認(rèn)證驅(qū)動(dòng),依照下面更新你的 User 類別的三個(gè)方法:

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

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

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

附注: 所有現(xiàn)存的「記得我」sessions 在此更新后將會(huì)失效,所以應(yīng)用程序的所有用戶將會(huì)被迫重新登錄。

組件管理者

兩個(gè)新的方法被加入到 Illuminate\Auth\UserProviderInterface 接口。范例實(shí)現(xiàn)方式可以在默認(rèn)驅(qū)動(dòng)中找到:

public function retrieveByToken($identifier, $token);

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

Illuminate\Auth\UserInterface 也加了三個(gè)新方法描述在「升級(jí)路徑」。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)