Security-Seite: Reichweiten-/Access-Control-Check (nur Booleans+Anzahl, keine Werte) - Profil-Privinfelder, Foto-IDOR, LV-Plan, Directory, anonyme iCal, Klassenliste

This commit is contained in:
Nicolas Gruber
2026-10-22 10:04:25 +02:00
parent 5b036024ec
commit 3af3c26304
6 changed files with 174 additions and 0 deletions
+1
View File
@@ -19,6 +19,7 @@
<a href="/stg" class="{{ 'active' if path.startswith('/stg') }}">Studiengänge</a>
<a href="/liste" class="{{ 'active' if path.startswith('/liste') }}">Namenslisten</a>
<a href="/fotos" class="{{ 'active' if path.startswith('/fotos') }}">Fotos</a>
<a href="/security" class="{{ 'active' if path.startswith('/security') }}">Security</a>
<a href="/" class="{{ 'active' if path == '/' }}">Start</a>
</nav>
</div>
+29
View File
@@ -0,0 +1,29 @@
{% extends "base.html" %}
{% block title %}Security-Check{% endblock %}
{% block content %}
<h1 class="page-title">Reichweiten-Check
<span class="badge badge-muted">Access Control</span>
</h1>
<div class="card">
<p class="hint" style="display:block">
Prüft, was ein <b>normaler Studenten-Login</b> (dein Account) von fremden Personen
abrufen kann. Angezeigt werden ausschließlich <b>Booleans und Anzahlen</b> –
keine Feldwerte, keine Speicherung. Grün = vom CIS sauber geschützt,
Rot = Daten liegen mit diesem Account offen.
</p>
<div class="form-row">
<div class="field">
<label>Ziel (optional)</label>
<input type="text" id="probe-uid" placeholder="leer = Zufallsstudent">
</div>
<button class="btn btn-primary" id="probe-btn" onclick="runProbe()">Check starten</button>
</div>
<p id="probe-status" class="muted"></p>
<table class="data" id="probe-table" style="display:none">
<thead><tr><th>#</th><th>Prüfung</th><th>Ergebnis</th><th>Details</th></tr></thead>
<tbody></tbody>
</table>
<p class="hint" id="probe-target" style="display:none"></p>
</div>
{% endblock %}