2016-07-12 16 views
0

Wir hatten ein zeitweiliges Problem mit Benutzern unserer Website, die mysteriöserweise als ein anderer Benutzer angemeldet waren. Die Site wurde auf der Concrete5 Version 5.6.3.4 erstellt. Dies scheint eine große Sicherheitslücke zu sein, da wir private und sensible Daten anzeigen und vor Ort Kreditkarten kaufen können.Concrete5 5.6.3.4 Benutzer ist als falscher Benutzer angemeldet

Antwort

0

Die Website implementiert für immer Cookies, die das Problem zu verursachen scheint. Gemäß this beträgt die Kollisionsrate für den Hash, der für den Cookie verwendet wird, ungefähr 8%. Der Patch im Link auf dieser Seite scheint das Problem zu mildern, aber nicht vollständig zu beseitigen.

Der zweite Patch versucht, die Benutzer-ID zur Kennung hinzuzufügen, um sie eindeutig zu machen und das Kollisionsrisiko zu beseitigen. Scheint so, als müsste es lauten:

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