fix security issue and filter on active users
This commit is contained in:
12
database.php
12
database.php
@@ -232,10 +232,8 @@ class mxDatabase
|
|||||||
|
|
||||||
if ($res->fetchColumn() > 0) {
|
if ($res->fetchColumn() > 0) {
|
||||||
$sql = "SELECT first_name, last_name, email, password_hash FROM logins "
|
$sql = "SELECT first_name, last_name, email, password_hash FROM logins "
|
||||||
. " WHERE localpart = '" . $localpart . "' LIMIT 1;";
|
. " WHERE localpart = '" . $localpart . "' AND active = 1 LIMIT 1;";
|
||||||
foreach ($this->db->query($sql) as $row) {
|
foreach ($this->db->query($sql) as $row) {
|
||||||
error_log($password . "-" . $row["password_hash"]);
|
|
||||||
// will only be executed once
|
|
||||||
if (password_verify($password, $row["password_hash"])) {
|
if (password_verify($password, $row["password_hash"])) {
|
||||||
return $row;
|
return $row;
|
||||||
}
|
}
|
||||||
@@ -281,12 +279,12 @@ class mxDatabase
|
|||||||
$term = filter_var($search_term, FILTER_SANITIZE_STRING);
|
$term = filter_var($search_term, FILTER_SANITIZE_STRING);
|
||||||
$result = array();
|
$result = array();
|
||||||
$sql = "SELECT COUNT(*) FROM logins WHERE"
|
$sql = "SELECT COUNT(*) FROM logins WHERE"
|
||||||
. " localpart LIKE '" . $term . "%';";
|
. " localpart LIKE '" . $term . "%' AND active = 1;";
|
||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
|
|
||||||
if ($res->fetchColumn() > 0) {
|
if ($res->fetchColumn() > 0) {
|
||||||
$sql = "SELECT first_name, last_name, localpart FROM logins WHERE"
|
$sql = "SELECT first_name, last_name, localpart FROM logins WHERE"
|
||||||
. " localpart LIKE '" . $term . "%';";
|
. " localpart LIKE '" . $term . "%' AND active = 1;";
|
||||||
foreach ($this->db->query($sql) as $row) {
|
foreach ($this->db->query($sql) as $row) {
|
||||||
array_push($result, [
|
array_push($result, [
|
||||||
"display_name" => $row["first_name"] . " " . $row["last_name"],
|
"display_name" => $row["first_name"] . " " . $row["last_name"],
|
||||||
@@ -301,12 +299,12 @@ class mxDatabase
|
|||||||
$term = filter_var($search_term, FILTER_SANITIZE_STRING);
|
$term = filter_var($search_term, FILTER_SANITIZE_STRING);
|
||||||
$result = array();
|
$result = array();
|
||||||
$sql = "SELECT COUNT(*) FROM logins WHERE"
|
$sql = "SELECT COUNT(*) FROM logins WHERE"
|
||||||
. " email = '" . $term . "';";
|
. " email = '" . $term . "' AND active = 1;";
|
||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
|
|
||||||
if ($res->fetchColumn() > 0) {
|
if ($res->fetchColumn() > 0) {
|
||||||
$sql = "SELECT first_name, last_name, localpart FROM logins WHERE"
|
$sql = "SELECT first_name, last_name, localpart FROM logins WHERE"
|
||||||
. " email = '" . $term . "';";
|
. " email = '" . $term . "' AND active = 1;";
|
||||||
foreach ($this->db->query($sql) as $row) {
|
foreach ($this->db->query($sql) as $row) {
|
||||||
array_push($result, [
|
array_push($result, [
|
||||||
"display_name" => $row["first_name"] . " " . $row["last_name"],
|
"display_name" => $row["first_name"] . " " . $row["last_name"],
|
||||||
|
|||||||
@@ -6,6 +6,10 @@ $response = [
|
|||||||
try {
|
try {
|
||||||
$inputJSON = file_get_contents('php://input');
|
$inputJSON = file_get_contents('php://input');
|
||||||
$input = json_decode($inputJSON, TRUE);
|
$input = json_decode($inputJSON, TRUE);
|
||||||
|
if (!isset($input)) {
|
||||||
|
throw new Exception('request body is no valid json');
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($input["lookup"])) {
|
if (!isset($input["lookup"])) {
|
||||||
throw new Exception('"lookup" is not defined');
|
throw new Exception('"lookup" is not defined');
|
||||||
}
|
}
|
||||||
@@ -36,7 +40,6 @@ try {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "msisdn":
|
case "msisdn":
|
||||||
error_log("sb requested a bulk lookup for msisdn");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception("unknown type for \"by\" param");
|
throw new Exception("unknown type for \"by\" param");
|
||||||
|
|||||||
Reference in New Issue
Block a user