Compare commits

...

3 commits

Author SHA1 Message Date
bernd 483ee7801e kommentar korrigiert 2021-03-04 19:55:17 +01:00
bernd e558f324bd kommentare und einrückung korrigiert 2021-03-04 19:53:38 +01:00
bernd 159d831c17 kleine anpassung an logmeldungen und kommentaren 2021-03-04 19:47:41 +01:00
3 changed files with 18 additions and 14 deletions

View file

@ -64,14 +64,13 @@ class BaseClass {
$this->log->setLogLevel($this->config->getLogLevel());
/**
* Instanz der Klasse Datenbank erstellen. Die Datenbank bekommt die
* Instanz der Klasse Config übergeben. Wenn nicht vorhanden wird
* die Tabelle requests angelegt.
* Instanzen der Klassen Config und Logger übergeben.
*/
try {
$this->db = getDatabase($this->config, $this->log);
} catch (Exception $e) {
$this->log->e("Error: {$e->getMessage()}");
}
try {
$this->db = getDatabase($this->config, $this->log);
} catch (Exception $e) {
$this->log->e("Error: {$e->getMessage()}");
}
}
public function generateToken(int $length): bool {
@ -79,6 +78,7 @@ class BaseClass {
/**
* Generiert einen Token aus zufälligen Bits der Länge 'length'.
* Speichert diesen Token in der als Refeenz übergebenen Variable.
* TODO: Die Funktion nach common.php auslagern?
*/
try {

View file

@ -28,7 +28,6 @@ function getNick(string $mid): string
{
/**
* Extrahiert aus einer Matrix-ID den localpart.
* TODO: In eine bibliothek auslagern? (/lib/common)
*/
$uid = "";

View file

@ -175,7 +175,7 @@ class Request extends BaseClass {
// Wenn es der erste Request ist -> return true
$count = count($timestamps);
if ($count === 0) {
$this->log->i("First request from {$_SERVER['REMOTE_ADDR']}");
$this->log->d("First request from {$_SERVER['REMOTE_ADDR']}");
return true;
}
$first = $timestamps[array_key_first($timestamps)]['time'];
@ -189,15 +189,15 @@ class Request extends BaseClass {
return false;
}
// Wenn der letzte Request weniger als 10 Sekunden her ist -> return
// Wenn der letzte Request weniger als 5 Sekunden her ist -> return
// false
if (($now - $last) < 5) {
$this->log->n("Time between two requests under 5 seconds");
return false;
}
// Wenn die durchschnittliche Dauer zwischen allen Anfragen unter 30
// Sekunden liegt -> return false
// Wenn die durchschnittliche Dauer zwischen allen Anfragen bei mehr
// als 3 anfragen unter 30 Sekunden liegt -> return false
if (($average) < 30 && $count > 3) {
$this->log->n("Duration between all requests under 10 seconds");
return false;
@ -235,7 +235,12 @@ class Request extends BaseClass {
/**
* Verschickt die Mail mit dem Verifizierungslink.
* TODO: Reicht filter_input()? Was kann hier passieren?
* TODO: Reicht filter_input()? Was kann hier passieren? Beim Check
* der Mailadresse verwenden wir FILTER_VALIDATE_EMAIL. SANITZE
* könnte eine Mail an eine andere Adresse schicken, als dann in der
* Datenbankn gespeichert wäre. Besser hier auch VALIDATE benutzen?
* TODO: Wie sieht das mit dem Risiko aus, daß jemand über die
* Konfigurationsdatei Code einschleust? Was kann man dagegen tun?
*/
$mailTo = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
@ -251,7 +256,7 @@ class Request extends BaseClass {
$mailbody = MAILTEXT1 . " {$mxdomain} " . MAILTEXT2 . "\r\n\r\n" . $link . $mailClosure;
if (mail($mailTo, $mailSubject, $mailbody, $mailFrom))
{
$this->log->i("Validationmail successfull send");
$this->log->n("Validationmail successfull send to {$mailTo}");
return true;
}
$this->log->e("Sending validation mail failed");