Zum Inhalt springen
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

OWASP Top 10: Broken Access Control

29. 08. 2025 1 Min. Lesezeit intermediate

Broken Access Control je od roku 2021 zranitelnost číslo jedna v OWASP Top 10. Každá třetí webová aplikace má problém s autorizací — uživatelé přistupují k datům, ke kterým nemají oprávnění.

Co je Broken Access Control

Access control zajišťuje, že uživatel může dělat pouze to, k čemu má oprávnění. Broken access control nastává, když aplikace tuto kontrolu neprovádí správně — uživatel může měnit cizí data, přistupovat k admin rozhraní nebo eskalovat svá práva.

Typické útoky

  • IDOR (Insecure Direct Object Reference): Změna ID v URL — /api/users/123 → /api/users/456
  • Forced browsing: Přímý přístup na /admin bez kontroly role
  • Parameter tampering: Změna role v POST requestu — role=user → role=admin
  • Path traversal: Přístup k souborům mimo povolený adresář

Příklad zranitelného kódu

// ❌ ŠPATNĚ — žádná kontrola vlastnictví app.get(‘/api/orders/:id’, async (req, res) => { const order = await Order.findById(req.params.id); res.json(order); }); // ✅ SPRÁVNĚ — kontrola vlastnictví 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); });

Prevence

  • Deny by default — vše zakázáno, pokud není explicitně povoleno
  • Kontrola autorizace na serveru, nikdy jen na klientu
  • Používejte RBAC nebo ABAC pro správu oprávnění
  • Logujte všechny pokusy o neautorizovaný přístup
  • Automatizované testy autorizace v 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);

Klíčový takeaway

Access control patří na server. Každý endpoint musí ověřit, zda aktuální uživatel má právo provést danou akci. Deny by default, logujte pokusy, testujte automaticky.

owaspsecurityaccess control
Teilen:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.