From 2c5278df45ed7f7ea0e697363a71a4593f0e575a Mon Sep 17 00:00:00 2001 From: Nicolas Gruber Date: Thu, 22 Oct 2026 10:20:05 +0200 Subject: [PATCH] Security-Seite: statische Audit-Referenz aus FH-Complete-Quellcode (benutzerberechtigung, Feldfilter basis/kontakt, foto_sperre, Modul-Pruefungen) --- app/templates/security.html | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/app/templates/security.html b/app/templates/security.html index 08a6d8b..4d583db 100644 --- a/app/templates/security.html +++ b/app/templates/security.html @@ -26,4 +26,68 @@ + +
+

Audit-Referenz: Wo die Rechte im Quellcode sitzen

+

+ Das CIS basiert auf FH-Complete (Open Source, github.com/FH-Complete). + Gefunden per Source-Review statt Raten — jede Zeile = eine Prüfung, die der + Reichweiten-Check oben abdeckt oder die das Weiterentwickeln der Tests erlaubt. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Stelle im CodeMechanismusPrüfung / Beobachtung
profile/index.phpFeld-Filter: $ansicht hide Geburtsdatum/-ort, + Adresse, private Kontakte bei fremdem Profil; ausser mit Recht + basis/kontaktCheck 2: grün = Code hält sich an sich selbst ✅
include/benutzerberechtigung.class.phpZentrale Prüfung $rechte->isBerechtigt('modul/recht', oe); + Rollen/Rechte in tbl_berechtigung, + tbl_rolleberechtigungAudit-Kriterium: Jede Seite mit Personen-/Plandaten MUSS diese Klasse + aufrufen — fehlender Aufruf = Fund. Unsere 4 roten Checks sind genau + die Seiten ohne wirksame Prüfung (LV-Plan, Autocomplete, bild.php, + stud_in_grp).
public/bild.php?src=person&person_id=Foto-Schutz nur über person.foto_sperre + (dann Dummy-Bild); keine Rollenprüfung, IDs fortlaufendCheck 3: Foto-IDOR. FIX-Hebel für den Report: foto_sperre + default-mäßig einschalten oder Prüfung einbauen.
lvplan/stpl_week.php · stpl_kalender.phpPlan für beliebige pers_uid ohne + BerechtigungscheckCheck 5: jeder Login sieht fremde Termine/Räume. Ist teils + gewollt (Raumsuche) — Meldung: Umfang dokumentieren.
lvplan/lvplan_autocomplete.phpAutocomplete benutzer liefert ganzes Directory + ohne RollenfilterCheck 1: 5735 Personen / 5 Requests.
extensions/FHC-Core-AnwesenheitenPrüfungen deklariert pro Action im Controller + (PermissionLib->isBerechtigt)Auf der Live-Instanz nicht installiert (404) — im Report als + "nicht testbar" vermerken.
extensions/FHC-Core-DSMSeigenes Datenschutz-Modul der PlattformBelegt: Feldebene ist eine konfigurierte Funktion, kein Bug — + ihre Korrektheit ist genau das, was Check 2 dynamisch validiert.
+
{% endblock %}