Files
praxis-creutzburg-web/admin/templates/header.inc.php
T
clemensandClaude Opus 5 6d903ac4fc 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>
2026-09-03 15:16:40 +02:00

106 lines
4.9 KiB
PHP

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet">
<link href="css/popup.css" rel="stylesheet">
<link rel="stylesheet" href="trumbowyg/dist/ui/trumbowyg.min.css">
<!-- Import Trumbowyg colors style in <head>... -->
<link rel="stylesheet" href="trumbowyg/dist/plugins/colors/ui/trumbowyg.colors.min.css">
<link rel="stylesheet" href="trumbowyg/dist/plugins/emoji/ui/trumbowyg.emoji.min.css">
<title>Adminbereich - Anfragen</title>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Menu</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php"><i class="glyphicon glyphicon-plus logo"></i> Praxis Creutzburg</a>
</div>
<?php if(!is_checked_in()): ?>
<div id="navbar" class="navbar-collapse collapse">
<form class="navbar-form navbar-right" action="login.php" method="post">
<table class="login" role="presentation">
<tbody>
<tr>
<td>
<div class="input-group">
<div class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></div>
<input class="form-control" placeholder="E-Mail" name="email" type="email" required>
</div>
</td>
<td><input class="form-control" placeholder="Passwort" name="passwort" type="password" value="" required></td>
<td><button type="submit" class="btn btn-success">Login</button></td>
</tr>
<tr>
<td><label style="margin-bottom: 0px; font-weight: normal;"><input type="checkbox" name="angemeldet_bleiben" value="remember-me" title="Angemeldet bleiben" checked="checked" style="margin: 0; vertical-align: middle;" /> <small>Angemeldet bleiben</small></label></td>
<td><small><a href="passwortvergessen.php">Passwort vergessen</a></small></td>
<td></td>
</tr>
</tbody>
</table>
</form>
</div><!--/.navbar-collapse -->
<?php else: ?>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Anfragen <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="anfragen.php">Übersicht Anfragen</a></li>
<li><a href="anfragen.php?aktion=1">Anfragen bearbeiten</a></li>
<li><a href="anfragen.php?aktion=12">Formular-Auswertung</a></li>
<li><a href="anfragen.php?aktion=18">Mailvorlagen anlegen</a></li>
<li><a href="anfragen.php?aktion=16">Mailvorlagen anpassen</a></li>
<li class="divider"></li>
<li><a href="anfragen.php?aktion=4">Urlaub eintragen</a></li>
<li><a href="anfragen.php?aktion=6">Notfallsprechstunde eintragen</a></li>
<li class="divider"></li>
<li><a href="http://ts03.fritz.box:8080/" target="_blank">Anrufbeantworter</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Impfungen <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="impfworkflow_warteliste.php">Warteliste</a></li>
<li><a href="impfworkflow_teilnehmer.php">Teilnehmer pflegen</a></li>
<li><a href="impfworkflow_event_create.php">Impfevent erstellen</a></li>
<li><a href="impfworkflow_event_teilnehmer.php">Event-Teilnehmer</a></li>
<li><a href="impfworkflow_stammdaten.php">Stammdaten</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Verwaltung <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="../zeiterfassung">Zeiterfassung</a></li>
<li><a href="webseitenadmin.php">Webseiteninhalt ändern</a></li>
<li><a href="settings.php">Einstellungen</a></li>
</ul>
</li>
<li><a href="zeiterfassung_hilfe.php">Hilfe</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>
</div><!--/.navbar-collapse -->
<?php endif; ?>
</div>
</nav>