CMBasic. Content-Management-System
Autor: Johann-Christian Hanke, www.cmbasic.de, 
www.jchanke.de, www.phpkid.de, www.buchlayout.info

CMBasic, 1.7.0 vom 16.2.2025 (2FA Beta)

======================================================================
Lösche mich nach dem Lesen aus dem Stammordner. Ich, die liesmich.txt 
muss nicht mit auf den Webserver kopiert werden!
======================================================================

WAS IST NEU?
Das System habe ich durch folgende Maßnahmen sicherer gemacht.
- Einloggverzögerung bei Fehleingabe der Anmeldedaten.
- Einloggsperre ab dem 5. Fehlversuch.
- Passwort ab sofort mit BCRYPT gehasht statt mit MD5!
Warum? MD5 gilt inzwischen als nicht mehr sicher genug.
BCRYPT ist dagegen state of the art.

======================================================================
Rückfallebene: Alte MD5-Hashes werden weiterhin anerkannt.
======================================================================

Bei Neueingabe des Passworts im Backend wird es automatisch 
mit BCRYPT verschlüsselt. Deshalb: Passwort sofort aktualisieren!

UPDATER MÜSSEN VOR DEM UPDATE SQL-CODE EINSPIELEN
Die user-Tabelle braucht ein längere Passwortfeld (mind. 60 Zeichen) 
für BCRYPT und die weiteren Felder email und code sind nötig für 2FA. 
Daher muss Folgendes VOR DEM UPDATE in die SQL-Konsole von CMBasic 
oder in den SQL-Bereich bei phpMyAdmin eingegeben werden:

ALTER TABLE `{$pfx}user` MODIFY `pw` VARCHAR(80);
ALTER TABLE `{$pfx}user` ADD `email` VARCHAR(255);
ALTER TABLE `{$pfx}user` ADD `code` VARCHAR(255);

======================================================================
Achtung, ersetze {$pfx} durch den Präfix deiner Installation, z.B. cmb_
oder cmb169_ (Der Präfix ist in der config.inc.php notiert.)
======================================================================

Hier als Beispiel der korrekte Code für den Präfix cmb_

ALTER TABLE `cmb_user` MODIFY `pw` VARCHAR(80);
ALTER TABLE `cmb_user` ADD `email` VARCHAR(255);
ALTER TABLE `cmb_user` ADD `code` VARCHAR(255);

Hier als Beispiel der korrekte Code für den Präfix cmb169_

ALTER TABLE `cmb169_user` MODIFY `pw` VARCHAR(80);
ALTER TABLE `cmb169_user` ADD `email` VARCHAR(255);
ALTER TABLE `cmb169_user` ADD `code` VARCHAR(255);

Hat das Aktualisieren der Datenbanktabelle geklappt? Glückwunsch!
Das alte CMBasic läuft weiterhin.

WIE DATEST DU UP?
Durch Einspielen der veränderten Dateien an den entsprechenden Stellen.
Und durch Löschen der zu entfernenden Einträge, denn einige Dateien und 
Ordner sind obsolet und sollten gelöscht werden. Die entsprechenden 
Dateien beginnen mit DELETE, sind mit Löschinfos gefüttert und sollen 
später selber gelöscht werden.

======================================================================
DELETE-Anweisungen findest du nur in der Update-Version von CMBasic 1.7.
Bei einer Neuinstallation sind die zu löschenden Elemente von Hause
aus nicht mehr vorhanden und es gibt keine DELETE-Anweisungen.
======================================================================

WIE SCHALTEST DU 2FA EIN?
Sobald das neue Feld email in der Nutzer-Tabelle ausgefüllt wird, 
ist die 2FA automatisch aktiv. Aber nur dann!

======================================================================
2FA-Mail kann bei wenigen restriktiv eingestellten Dienstleistern 
nicht funktionieren! Oder die Mail landet im Spam. 
Deshalb zuerst unbedingt vorab testen, um den Zugang zu behalten!
======================================================================

WIE TESTEST DU 2FA?
Über einen Zweitzugang, den du im Backend einrichtest!
Der originale Zugang bleibt weiterhin VORERST ohne 2FA!
Geht 2FA? Dann kann der originale Zugang gelöscht bzw. 
auch mit einer E-Mail-Adresse versehen werden.