Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

OWASP Top 10: Fehlerhafte Zugriffskontrolle

29. 08. 2025 1 Min. Lesezeit intermediate

Broken Access Control ist seit 2021 die Schwachstelle Nummer eins in den OWASP Top 10. Jede dritte Webanwendung hat Autorisierungsprobleme — Benutzer greifen auf Daten zu, für die sie keine Berechtigung haben.

Was ist Broken Access Control

Zugriffskontrolle stellt sicher, dass Benutzer nur das tun können, wozu sie berechtigt sind. Broken Access Control tritt auf, wenn die Anwendung diese Prüfung nicht korrekt durchführt — Benutzer können fremde Daten ändern, auf Admin-Oberflächen zugreifen oder ihre Rechte eskalieren.

Typische Angriffe

  • IDOR (Insecure Direct Object Reference): Änderung der ID in der URL — /api/users/123 → /api/users/456
  • Forced Browsing: Direkter Zugriff auf /admin ohne Rollenprüfung
  • Parameter Tampering: Änderung der Rolle im POST-Request — role=user → role=admin
  • Path Traversal: Zugriff auf Dateien außerhalb des erlaubten Verzeichnisses

Beispiel für verwundbaren Code

// BAD — keine Eigentumsüberprüfung
app.get('/api/orders/:id', async (req, res) => {
  const order = await Order.findById(req.params.id);
  res.json(order);
});

// GOOD — Eigentumsüberprüfung
app.get('/api/orders/:id', async (req, res) => {
  const order = await Order.findById(req.params.id);
  if (!order || order.userId !== req.user.id) {
    return res.status(403).json({ error: 'Forbidden' });
  }
  res.json(order);
});

Prävention

  • Deny by Default — alles verboten, sofern nicht explizit erlaubt
  • Autorisierungsprüfung auf dem Server, nie nur auf dem Client
  • RBAC oder ABAC für Berechtigungsverwaltung verwenden
  • Alle unautorisierten Zugriffsversuche protokollieren
  • Automatisierte Autorisierungstests in CI/CD

Middleware-Pattern

const authorize = (allowedRoles) => { return (req, res, next) => { if (!req.user || !allowedRoles.includes(req.user.role)) { return res.status(403).json({ error: ‘Insufficient permissions’ }); } next(); }; }; app.delete(‘/api/users/:id’, authorize([‘admin’]), deleteUser);

Wichtigste Erkenntnis

Zugriffskontrolle gehört auf den Server. Jeder Endpoint muss prüfen, ob der aktuelle Benutzer berechtigt ist, die Aktion durchzuführen. Deny by Default, Versuche protokollieren, automatisch testen.

owaspsecurityaccess control
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.