Merge origin/main: Review-Branch mit v2.4.0-Features zusammenführen
Konfliktauflösung kombiniert beide Seiten: - Auth: Secure-Cookie-Flag + DB-Session-Handler (main) - UniFiController: createVouchers (n-Parameter, 1 API-Call) + QoS-Optionen (main) - index.php: IP-Rate-Limit/PRG/Sticky-Forms + CAPTCHA/SMS/QoS/Tageslimit (main) - users.php: 2FA-Reset (main) auf POST+PRG umgestellt wie übrige Aktionen - forgot_password: Session-Throttle (main) + IP-Throttle kombiniert - Eigene Migrationen wegen Nummernkollision auf 0005/0006 umbenannt https://claude.ai/code/session_01KKVpVPJjrTKGoRgpJcySD4
This commit is contained in:
commit
1a2f86ed3d
65 changed files with 3136 additions and 32 deletions
|
|
@ -35,12 +35,21 @@ $success = '';
|
|||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
// Einfacher Throttle: max. 3 Anfragen pro 15 Minuten je Session (gegen Spam)
|
||||
$now = time();
|
||||
$rl = array_values(array_filter($_SESSION['pwreset_times'] ?? [], fn($t) => ($now - $t) < 900));
|
||||
if (count($rl) >= 3) {
|
||||
$error = 'Zu viele Anfragen. Bitte warten Sie einige Minuten.';
|
||||
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
$error = __('error_email_invalid');
|
||||
} else {
|
||||
// IP-Rate-Limit gegen Mail-Bombing: max. 5 Reset-Anfragen / 15 Min.
|
||||
// Bei Limit trotzdem die generische Erfolgsmeldung zeigen (keine
|
||||
// Information darueber preisgeben, ob das Konto existiert).
|
||||
$rl[] = $now;
|
||||
$_SESSION['pwreset_times'] = $rl;
|
||||
|
||||
// Zusaetzlich zum Session-Throttle: IP-Rate-Limit gegen Mail-Bombing
|
||||
// (max. 5 Reset-Anfragen / 15 Min., umgeht Cookie-Loeschen). Bei Limit
|
||||
// trotzdem die generische Erfolgsmeldung zeigen (keine Information
|
||||
// darueber preisgeben, ob das Konto existiert).
|
||||
$resetLimited = throttleHit($db, 'password_reset', 5, 15) === true;
|
||||
|
||||
$user = $resetLimited
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue