2016-07-12 6 views
0

본 사이트의 사용자가 신비하게 다른 사용자로 로그인하는 중 간헐적 인 문제가 발생했습니다. 이 사이트는 Concrete5 Version 5.6.3.4를 기반으로합니다. 개인 정보 및 민감한 데이터를 표시하고 현장에서 신용 카드를 구매할 수 있으므로 보안상의 큰 결함 인 것으로 보입니다.Concrete5 5.6.3.4 사용자가 잘못된 사용자로 로그인했습니다

답변

0

이 사이트는 문제를 일으키는 것으로 보이는 영원한 쿠키를 구현합니다. this에 따르면 쿠키에 사용되는 해시의 충돌 비율은 약 8 %입니다. 해당 페이지의 링크에있는 패치는 문제를 완화하는 것으로 보이지만 완전히 제거하지는 않습니다.

두 번째 패치는 고유하게 만들고 충돌 위험을 제거하기 위해 식별자에 사용자 ID를 추가하려고 시도합니다. 읽어야하는 것 같습니다 :

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));