From 7009784e8b246bdfede3d4e8605237520ecde057 Mon Sep 17 00:00:00 2001 From: blodyiheb <126820689+blodyiheb@users.noreply.github.com> Date: Thu, 4 Sep 2025 01:18:10 +0100 Subject: [PATCH] Add admin settings, installer updates, reCAPTCHA & SMTP, and brute-force protection - Added two new tables: `failed_logins` and `reset_attempts` for enhanced security tracking. - Created Admin Settings panel: - General: site logo upload, social links - SMTP: email settings with enable/disable option - reCAPTCHA: keys with enable/disable option - Realm: name, IP, port, logo - SOAP: GM command connection - Updated Installer: - Added options for reCAPTCHA and SMTP configuration - Supports enabling/disabling features directly from installer - Implemented brute-force protection for login, forgot password, and reset password pages. --- Sahtout/SQL/Readme.txt | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Sahtout/SQL/Readme.txt b/Sahtout/SQL/Readme.txt index 9a1e03e..bcd256d 100644 --- a/Sahtout/SQL/Readme.txt +++ b/Sahtout/SQL/Readme.txt @@ -8,6 +8,7 @@ means thats inside the acore_auth database ⚠️ Important Database Migration Notice ⚠️ +OPTION 1 The new sahtout_site SQL file will recreate the database and all tables. That means it will delete your old structure. @@ -19,4 +20,29 @@ To avoid losing your data: 3.Manually re-insert or import your old data into the new database. -👉 Without step 1, all your data will be lost when applying the new version. \ No newline at end of file +OPTION 2 create this tables +failed_logins Table +CREATE TABLE IF NOT EXISTS `failed_logins` ( + `id` int NOT NULL AUTO_INCREMENT, + `ip_address` varchar(45) NOT NULL, + `username` varchar(255) DEFAULT NULL, + `attempts` int DEFAULT '0', + `last_attempt` int NOT NULL, + `block_until` int DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_ip_address` (`ip_address`), + KEY `idx_last_attempt` (`last_attempt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf16; + +reset_attempts Table +CREATE TABLE IF NOT EXISTS `reset_attempts` ( + `id` int NOT NULL AUTO_INCREMENT, + `ip_address` varchar(45) NOT NULL, + `email` varchar(255) DEFAULT NULL, + `attempts` int NOT NULL DEFAULT '0', + `last_attempt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `blocked_until` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `idx_email` (`email`), + KEY `idx_ip_address` (`ip_address`) +) ENGINE=InnoDB DEFAULT CHARSET=utf16;