Security-Seite: statische Audit-Referenz aus FH-Complete-Quellcode (benutzerberechtigung, Feldfilter basis/kontakt, foto_sperre, Modul-Pruefungen)
This commit is contained in:
@@ -26,4 +26,68 @@
|
||||
</table>
|
||||
<p class="hint" id="probe-target" style="display:none"></p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Audit-Referenz: Wo die Rechte im Quellcode sitzen</h2>
|
||||
<p class="hint" style="display:block">
|
||||
Das CIS basiert auf <b>FH-Complete</b> (Open Source, <span class="mono">github.com/FH-Complete</span>).
|
||||
Gefunden per Source-Review statt Raten — jede Zeile = eine Prüfung, die der
|
||||
Reichweiten-Check oben abdeckt oder die das <b>Weiterentwickeln</b> der Tests erlaubt.
|
||||
</p>
|
||||
<table class="data">
|
||||
<thead><tr><th>Stelle im Code</th><th>Mechanismus</th><th>Prüfung / Beobachtung</th></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="mono">profile/index.php</td>
|
||||
<td>Feld-Filter: <span class="mono">$ansicht</span> hide Geburtsdatum/-ort,
|
||||
Adresse, private Kontakte bei fremdem Profil; ausser mit Recht
|
||||
<span class="mono">basis/kontakt</span></td>
|
||||
<td>Check 2: grün = Code hält sich an sich selbst ✅</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">include/benutzerberechtigung.class.php</td>
|
||||
<td>Zentrale Prüfung <span class="mono">$rechte->isBerechtigt('modul/recht', oe)</span>;
|
||||
Rollen/Rechte in <span class="mono">tbl_berechtigung</span>,
|
||||
<span class="mono">tbl_rolleberechtigung</span></td>
|
||||
<td>Audit-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).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">public/bild.php?src=person&person_id=</td>
|
||||
<td>Foto-Schutz nur über <span class="mono">person.foto_sperre</span>
|
||||
(dann Dummy-Bild); keine Rollenprüfung, IDs fortlaufend</td>
|
||||
<td>Check 3: Foto-IDOR. FIX-Hebel für den Report: foto_sperre
|
||||
default-mäßig einschalten oder Prüfung einbauen.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">lvplan/stpl_week.php · stpl_kalender.php</td>
|
||||
<td>Plan für beliebige <span class="mono">pers_uid</span> ohne
|
||||
Berechtigungscheck</td>
|
||||
<td>Check 5: jeder Login sieht fremde Termine/Räume. Ist teils
|
||||
gewollt (Raumsuche) — Meldung: Umfang dokumentieren.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">lvplan/lvplan_autocomplete.php</td>
|
||||
<td>Autocomplete <span class="mono">benutzer</span> liefert ganzes Directory
|
||||
ohne Rollenfilter</td>
|
||||
<td>Check 1: 5735 Personen / 5 Requests.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">extensions/FHC-Core-Anwesenheiten</td>
|
||||
<td>Prüfungen deklariert pro Action im Controller
|
||||
(<span class="mono">PermissionLib->isBerechtigt</span>)</td>
|
||||
<td>Auf der Live-Instanz nicht installiert (404) — im Report als
|
||||
"nicht testbar" vermerken.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mono">extensions/FHC-Core-DSMS</td>
|
||||
<td>eigenes Datenschutz-Modul der Plattform</td>
|
||||
<td>Belegt: Feldebene ist eine konfigurierte Funktion, kein Bug —
|
||||
ihre Korrektheit ist genau das, was Check 2 dynamisch validiert.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user