Skip to content
Permalink
Browse files

Bugfix für #8: Nicht geprüfter String in Dispatcher.setRemoteUser

  • Loading branch information
wolfgang-wiedermann committed Mar 12, 2014
1 parent b513cac commit e0387c31650b7894088d9e1ee734bfff511de9ff
Showing with 21 additions and 10 deletions.
  1. +21 −10 lib/Dispatcher.php
@@ -41,7 +41,7 @@ function getUser() {
# Ermittlung der Benutzer-ID des aktuell angemeldeten Benutzers
# (Zur Nutzung im jeweiligen Controller)
function getUserId() {
return $this-> user_id;
return $this->user_id;
}

# Methode zum Encodieren von Arrays in *.csv-Strings
@@ -75,17 +75,21 @@ function csvEncode($data) {
# Methode zum uebergeben des Benutzers an den Dispatcher
# ermittelt den zugeordneten Mandanten und setzt dessen id in das Feld $this->mandant_id
function setRemoteUser($user) {
$db = getDbConnection();
$this->user = $user;
$rs = mysqli_query($db, "select mandant_id, user_id from fi_user where user_name = '$user'");
if($rs && $obj = mysqli_fetch_object($rs)) {
$this->mandant = $obj->mandant_id;
$this->user_id = $obj->user_id;
if($this->isValidUserName($user)) {
$db = getDbConnection();
$this->user = $user;
$rs = mysqli_query($db, "select mandant_id, user_id from fi_user where user_name = '$user'");
if($rs && $obj = mysqli_fetch_object($rs)) {
$this->mandant = $obj->mandant_id;
$this->user_id = $obj->user_id;
} else {
throw new Exception("Kein Mandant für den Benutzer $user konfiguriert");
}
mysqli_close($db);
//logX("Remote use ".$this->user." registered");
} else {
throw new Exception("Kein Mandant für den Benutzer $user konfiguriert");
throw new Exception("Der Benutzername enthält ungültige Zeichen");
}
mysqli_close($db);
logX("Remote use ".$this->user." registered");
}

# Ein Objekt der angefragten Controller-Klasse laden
@@ -116,6 +120,13 @@ function isValidControllerName() {
return count($results) == 0;
}

# Prüft, ob der Benutzername keine ungültigen Zeichen enthält
function isValidUserName($username) {
$pattern = "/[']/";
preg_match($pattern, $username, $results);
return count($results) == 0;
}

# Die angefragte Action ermitteln
function getActionName() {
return $this->request['action'];

0 comments on commit e0387c3

Please sign in to comment.
You can’t perform that action at this time.