CSRF-Schutz auf intern/ ausweiten und BOMs entfernen
intern/ enthaelt dieselben Patientendaten wie der Adminbereich und war bisher genauso ungeschuetzt. config.inc.php aktiviert den Token-Filter jetzt fuer beide Verzeichnisse. Eigenen AJAX-Code oder Nicht-HTML-Ausgaben gibt es dort nicht, die Umstellung betrifft nur Formulare. intern/login.php rief nach dem Include ein zweites session_start() auf und setzte danach session.gc_maxlifetime und session.cookie_lifetime per ini_set(). Beides lief ins Leere, weil die Sitzung zu dem Zeitpunkt schon laeuft, und erzeugte Warnungen. Die Lebensdauer kommt aus session_set_cookie_params() in config.inc.php. 13 Dateien begannen mit einem UTF-8-BOM. Die drei Bytes gehen vor dem Include raus, womit die Header gesendet sind und session_set_cookie_params() sowie session_start() in config.inc.php scheitern - genau die Flags, um die es hier geht. Sichtbar wird das nur ohne output_buffering, aber darauf sollte sich die Sitzungssicherheit nicht verlassen. Nachgeprueft mit output_buffering=0 und error_reporting=E_ALL: admin/ und intern/ melden keine Header- oder Sessionwarnungen mehr, POSTs ohne Token liefern 403, mit Token laufen sie durch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+5
-3
@@ -7,10 +7,12 @@
|
||||
ob_start();
|
||||
require_once(__DIR__ . "/../inc/config.inc.php");
|
||||
require_once(__DIR__ . "/../inc/functions.inc.php");
|
||||
session_start();
|
||||
|
||||
ini_set('session.gc_maxlifetime', 30*24*60*60); // 30 Tage
|
||||
ini_set('session.cookie_lifetime', 30*24*60*60); // 30 Tage
|
||||
// Hinweis: hier standen zwei ini_set() auf session.gc_maxlifetime und
|
||||
// session.cookie_lifetime. Beide liefen ins Leere, weil die Sitzung zu
|
||||
// diesem Zeitpunkt schon laeuft - PHP ignoriert Session-Einstellungen
|
||||
// dann und meldet eine Warnung. Die Lebensdauer des Cookies kommt aus
|
||||
// session_set_cookie_params() in inc/config.inc.php (30 Tage).
|
||||
include(__DIR__ . "/../inc/password.inc.php");
|
||||
|
||||
$error_msg = "";
|
||||
|
||||
Reference in New Issue
Block a user