0
我們的網站用戶神祕地以其他用戶身份登錄時遇到間歇性問題。該網站建立在Concrete5 5.6.3.4版本上。這似乎是一個巨大的安全缺陷,因爲我們正在顯示私人和敏感數據,並允許現場信用卡購買。Concrete5 5.6.3.4用戶以錯誤用戶身份登錄
我們的網站用戶神祕地以其他用戶身份登錄時遇到間歇性問題。該網站建立在Concrete5 5.6.3.4版本上。這似乎是一個巨大的安全缺陷,因爲我們正在顯示私人和敏感數據,並允許現場信用卡購買。Concrete5 5.6.3.4用戶以錯誤用戶身份登錄
該網站實施永久性Cookie,似乎是導致問題。根據this,用於cookie的散列的衝突率約爲8%。該頁面鏈接中的修補程序似乎可以緩解該問題,但不能完全消除該問題。
第二個補丁嘗試將用戶標識添加到標識以使其唯一併消除碰撞風險。似乎應該是這樣的:
public function getString($length = 12) {
$str = str_repeat($this->letters, 10);
- $hash = substr(str_shuffle($str), 0, $length);
+ $user = new User();
+ if($user->getUserID()) {
+ $hash = sprintf("%i:%s, $user->getUid(), substr(str_shuffle($str), 0, $length));
+ } else {
+ $hash = sprintf("%s%i:%s", substr(str_shuffle($str), 0, $length), mt_rand(999,9999), substr(str_shuffle($str), 0, $length));