Skip to content

Commit

Permalink
Bugfix für #8: Nicht geprüfter String in Dispatcher.setRemoteUser
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfgang-wiedermann committed Mar 12, 2014
1 parent b513cac commit e0387c3
Showing 1 changed file with 21 additions and 10 deletions.
31 changes: 21 additions & 10 deletions lib/Dispatcher.php
Expand Up @@ -41,7 +41,7 @@ function getUser() {
# Ermittlung der Benutzer-ID des aktuell angemeldeten Benutzers # Ermittlung der Benutzer-ID des aktuell angemeldeten Benutzers
# (Zur Nutzung im jeweiligen Controller) # (Zur Nutzung im jeweiligen Controller)
function getUserId() { function getUserId() {
return $this-> user_id; return $this->user_id;
} }


# Methode zum Encodieren von Arrays in *.csv-Strings # Methode zum Encodieren von Arrays in *.csv-Strings
Expand Down Expand Up @@ -75,17 +75,21 @@ function csvEncode($data) {
# Methode zum uebergeben des Benutzers an den Dispatcher # Methode zum uebergeben des Benutzers an den Dispatcher
# ermittelt den zugeordneten Mandanten und setzt dessen id in das Feld $this->mandant_id # ermittelt den zugeordneten Mandanten und setzt dessen id in das Feld $this->mandant_id
function setRemoteUser($user) { function setRemoteUser($user) {
$db = getDbConnection(); if($this->isValidUserName($user)) {
$this->user = $user; $db = getDbConnection();
$rs = mysqli_query($db, "select mandant_id, user_id from fi_user where user_name = '$user'"); $this->user = $user;
if($rs && $obj = mysqli_fetch_object($rs)) { $rs = mysqli_query($db, "select mandant_id, user_id from fi_user where user_name = '$user'");
$this->mandant = $obj->mandant_id; if($rs && $obj = mysqli_fetch_object($rs)) {
$this->user_id = $obj->user_id; $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 { } 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 # Ein Objekt der angefragten Controller-Klasse laden
Expand Down Expand Up @@ -116,6 +120,13 @@ function isValidControllerName() {
return count($results) == 0; 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 # Die angefragte Action ermitteln
function getActionName() { function getActionName() {
return $this->request['action']; return $this->request['action'];
Expand Down

0 comments on commit e0387c3

Please sign in to comment.