NCA Social Media
Erstellt:
Aktualisiert:
Autor:
Roland Golla
Grüner isometrischer Schild mit OWASP Top 10 Schriftzug, Server und Rakete

Was sind die OWASP Top 10?

Die OWASP Top 10 sind eine Liste der zehn kritischsten Sicherheitsrisiken für Web Anwendungen, herausgegeben von der Open Worldwide Application Security Project Foundation. Die aktuelle Ausgabe OWASP Top 10:2025 nennt Broken Access Control, Security Misconfiguration und Software Supply Chain Failures als die drei größten Risiken und gilt weltweit als Referenz für Entwickler, Auditoren und Compliance.
OWASP ist eine gemeinnützige Stiftung. Alles, was sie veröffentlicht, ist frei verfügbar. Die Top 10 sind ihr bekanntestes Projekt und erscheinen etwa alle vier Jahre. Jede Ausgabe entsteht aus zwei Quellen: Testdaten von Security Firmen über Millionen von Anwendungen und einer Umfrage unter Praktikern, die Risiken nennen, die Tools noch nicht messen.
Für PHP Teams sind die Top 10 die wichtigste Liste überhaupt. PHP treibt einen großen Teil des Webs an, und fast jede Kategorie hat ein konkretes Gegenstück im Alltag: die SQL Abfrage mit zusammengesetztem String, das vergessene APP_DEBUG, das Composer Paket mit alter CVE. Diese Seite erklärt alle zehn Kategorien, was sich 2025 geändert hat und wie Symfony, PHPStan und Cypress helfen, sie abzudecken.
Inhalt

OWASP Top 10 mit NCA: Schnelle Hilfe vom Experten

Wir arbeiten seit über 20 Jahren mit PHP und Symfony in Production. Jedes Projekt läuft bei uns mit PHPStan, Psalm, Composer Audit und Cypress in der CI, lange bevor ein Audit danach fragt. Die OWASP Top 10 sind dabei kein Papier für den Jahresbericht, sondern die Liste, gegen die wir Legacy Code beim Refactoring systematisch abarbeiten. Dass wir Open Source Tools wie unser eigenes Cypress Plugin pflegen, hilft: Wir kennen die Werkzeuge von innen.
Passend dazu bieten wir PHP Consulting für Security Reviews, PHP Refactoring für Legacy Code mit Sicherheitsschulden, PHP Updates auf unterstützte Versionen, CI CD Pipelines mit Docker und Staging und AI Coding Guidelines, damit KI Agenten die Top 10 einhalten. Für KI Features im Projekt kommt das Vibe Coding Consulting dazu.
OWASP Top 10 im eigenen Projekt prüfen
Kostenloses Kennenlernen, Aufwand schätzen, transparente Minuten Abrechnung. In drei Schritten zum passenden Angebot.
Anfrage-Konfiguration
Starten Sie Ihre Anfrage
Projektart
Infos
Nachricht

Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.

CORE EXPERTISE

Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.

BFSG COMPLIANT

Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.

ENTERPRISE READY

Die zehn Kategorien der OWASP Top 10:2025

Jede Kategorie bündelt mehrere CWEs, also Schwachstellentypen aus der MITRE Datenbank. Insgesamt sind es 248 CWEs in zehn Kategorien. OWASP sortiert nach Ursache, nicht nach Symptom: Sensitive Data Exposure ist ein Symptom, Cryptographic Failures die Ursache. Das macht die Liste für Entwickler brauchbar, weil zu jeder Ursache eine konkrete Gegenmaßnahme passt.
Die Tabelle zeigt alle zehn Kategorien mit einem typischen Beispiel aus PHP Projekten und dem Baustein, mit dem Symfony das Problem löst. Platz 1 ist seit zwei Ausgaben derselbe: Broken Access Control. Im Schnitt hatten 3,73 Prozent aller getesteten Anwendungen mindestens eine Schwachstelle aus dieser Kategorie.

OWASP Top 10:2025 im Überblick

Kategorie Typisches Beispiel in PHP Gegenmittel in Symfony
A01 Broken Access Control Fremde Bestellung über ID in der URL aufrufbar Voter und isGranted pro Objekt, nicht nur pro Route
A02 Security Misconfiguration APP_DEBUG=1 in Production, Debug Toolbar sichtbar Environment Trennung, Secrets im Vault, Hardening Script
A03 Software Supply Chain Failures Composer Paket mit bekannter CVE in der composer.lock composer audit in CI, Renovate, Versionen pinnen
A04 Cryptographic Failures Passwörter mit md5, Tokens mit rand() PasswordHasher auto, random_bytes, TLS erzwingen
A05 Injection SQL String mit Nutzereingabe zusammengesetzt Doctrine Parameter, Twig Auto Escaping, HTML Sanitizer
A06 Insecure Design Passwort Reset ohne Rate Limit und Ablauf Threat Modeling, Login Throttling, Ablaufzeiten
A07 Authentication Failures Session Fixation, schwache Remember Me Cookies Security Component, Session Migration, 2FA Bundle
A08 Software or Data Integrity Failures unserialize() auf Nutzerdaten, ungesignierte Updates JSON statt serialize, signierte Artefakte, Lockfiles
A09 Security Logging and Alerting Failures Fehlgeschlagene Logins landen nirgends Monolog Security Channel, Sentry Alerts, Grafana
A10 Mishandling of Exceptional Conditions catch Throwable ohne Rethrow, Auth Service Timeout lässt durch Fail Closed, gezielte Exceptions, Functional Tests für Fehlerpfade

Was sich 2025 geändert hat

Die Ausgabe 2025 ist die achte seit 2003. OWASP hat zwei Kategorien neu aufgenommen, eine zusammengelegt und die Reihenfolge an die Daten angepasst. Grundlage waren Testdaten von über 2,8 Millionen Anwendungen und eine Community Umfrage. Acht Plätze kommen aus den Daten, zwei aus der Umfrage, weil sich manche Risiken noch nicht automatisiert messen lassen.
Neu: A03 Software Supply Chain Failures. Der Nachfolger von Vulnerable and Outdated Components, aber breiter: Abhängigkeiten, Build Systeme, Verteilung. In der Community Umfrage mit Abstand das meistgenannte Risiko. In den Testdaten selten, dafür mit den höchsten Exploit und Impact Werten. Für PHP Teams heißt das: composer.lock, Composer Audit und saubere CI Images sind kein Nice to have mehr.
Neu: A10 Mishandling of Exceptional Conditions. 24 CWEs rund um fehlerhafte Error Behandlung, Fail Open Logik und ungeplante Zustände. Die Kategorie beschreibt genau das, was in Legacy PHP am häufigsten passiert: ein globaler Catch, der alles schluckt, und die Anwendung läuft im unsicheren Zustand weiter.
Verschoben: Security Misconfiguration springt von Platz 5 auf 2. Cryptographic Failures und Injection fallen jeweils zwei Plätze, bleiben aber kritisch, Injection hat weiter die meisten CVEs. Server Side Request Forgery ist kein eigener Platz mehr und gehört jetzt zu Broken Access Control. Logging and Monitoring heißt jetzt Logging and Alerting, weil Logs ohne Alarm niemanden wecken.

OWASP Top 10 in Symfony umsetzen

Symfony bringt für die meisten Kategorien fertige Bausteine mit. Der Unterschied zwischen sicher und unsicher liegt fast immer darin, ob das Team die Bausteine konsequent nutzt. Das typische Beispiel ist Broken Access Control: Die Route ist geschützt, der Datensatz nicht.
Code:
          

#[Route('/orders/{id}', methods: ['GET'])]
public function show(Order $order): Response
{
    // A01: nicht nur die Route prüfen, sondern das Objekt
    $this->denyAccessUnlessGranted('ORDER_VIEW', $order);

    return $this->render('order/show.html.twig', [
        'order' => $order,
    ]);
}

Der dazugehörige Voter prüft, ob die Bestellung zum eingeloggten Kunden gehört. Damit ist die klassische IDOR Lücke zu, bei der ein Nutzer fremde IDs in der URL durchprobiert.
Code:
          

final class OrderVoter extends Voter
{
    protected function supports(string $attribute, mixed $subject): bool
    {
        return $attribute === 'ORDER_VIEW' && $subject instanceof Order;
    }

    protected function voteOnAttribute(
        string $attribute,
        mixed $subject,
        TokenInterface $token
    ): bool {
        $user = $token->getUser();

        return $user instanceof Customer
            && $subject->getCustomer()->getId() === $user->getId();
    }
}

Für die anderen Kategorien gilt dasselbe Muster, Framework Mittel nutzen statt selbst bauen:
  • A02 Misconfiguration: APP_DEBUG=0 in Production, Secrets über Symfony Vault, keine Debug Toolbar nach außen.
  • A04 Cryptographic Failures: PasswordHasher mit auto Algorithmus, nie md5 oder sha1 für Passwörter, TLS überall.
  • A05 Injection: Doctrine QueryBuilder mit Parametern, Twig Auto Escaping, HTML Sanitizer für Rich Text.
  • A07 Authentication: Login Throttling, Remember Me nur mit sicheren Cookies, Zwei Faktor über Bundle.
  • A09 Logging und Alerting: Security Events über Monolog loggen und an Sentry oder Grafana anbinden.
  • A10 Exceptional Conditions: Fail Closed. Ein Fehler im Auth Pfad führt zu 403, nie zu Durchlass.
Alte Projekte haben diese Bausteine oft nur halb im Einsatz. Beim PHP Refactoring und beim Symfony Upgrade mit Rector holen wir sie Schritt für Schritt nach, abgesichert durch Functional Tests.

Tools für OWASP Top 10 in PHP Projekten

Kein einzelnes Tool deckt alle zehn Kategorien ab. Die Kombination zählt. Das ist unser Setup, das in jeder CI Pipeline läuft:
  • Composer Audit für A03 Supply Chain: prüft composer.lock gegen die PHP Security Advisories Database. Ein Befehl, null Konfiguration.
  • Renovate für A03 und A08: hält Abhängigkeiten aktuell, pinnt Versionen und Digests.
  • Psalm mit Taint Mode für A05 Injection: verfolgt Nutzereingaben bis zur Datenbank oder zum Template.
  • Progpilot für A05 und A04: statische Security Analyse speziell für PHP, findet auch unsichere Crypto Aufrufe.
  • PHPStan für A10: strikte Typen und unerreichbarer Code machen fehlerhafte Exception Pfade sichtbar.
  • Cypress für A01 und A07: E2E Tests, die als falscher Nutzer auf fremde Ressourcen zugreifen und 403 erwarten.
  • Sentry für A09: Exceptions landen mit Kontext im Monitoring und lösen Alerts aus.
Die Verwaltung der Pipelines beschreiben wir auf der Seite zu PHP Quality Gates in GitHub Actions und GitLab CI. KI gestützte Pentester wie Shannon oder Scanner wie Claude Security ergänzen das Setup, ersetzen aber keinen Review durch Menschen.

OWASP Top 10 und KI Coding: Guardrails statt Vertrauen

KI Agenten wie Claude Code oder OpenCode kennen die OWASP Top 10. Trotzdem erzeugen sie ohne Vorgaben regelmäßig Code, der gegen die Liste verstößt: rohe SQL Strings, deaktivierter CSRF Schutz für einen schnellen Test, ein catch Throwable ohne Rethrow. Das Modell optimiert auf lauffähig, nicht auf sicher.
Drei Dinge helfen in der Praxis:
  • Guidelines im Repository: Eine CLAUDE.md oder AGENTS.md, die OWASP Kategorien konkret auf das Projekt übersetzt. Beispiel: Jede Query läuft über Doctrine Parameter, jede Mutation prüft einen Voter.
  • Static Analysis vor dem Commit: PHPStan, Psalm Taint Mode und Progpilot im Pre Commit Hook. Der Agent sieht die Fehlermeldung und korrigiert selbst.
  • Review der Security Diffs: Änderungen an security.yaml, Voter, Formularen und Auth Flows liest ein Mensch. Immer.
Wer KI Features baut, also Chatbots, Agenten oder RAG Pipelines, hat ein zweites Thema: die OWASP Top 10 for LLM Applications. Prompt Injection und Excessive Agency stehen dort ganz oben. Die Web Top 10 decken das nicht ab. Beide Listen zusammen sind der Rahmen für Vise Coding mit Guardrails in Production.

It's the very start of your journey.

Andrew van der Stock, Executive Director OWASP Foundation, Lead Author OWASP Top 10 – via The Virtual CISO Podcast, Pivot Point Security

OWASP Top 10 bei NCA: So arbeiten wir damit

Wir behandeln die OWASP Top 10 nicht als Audit am Ende, sondern als Teil der täglichen Arbeit. Jede Kategorie bekommt einen festen Platz: in der CI Pipeline als Quality Gate, in den AI Coding Guidelines für KI Agenten und in den E2E Tests aus dem NCA Cypress Glossar.
Bei Legacy Modernisierung nutzen wir die Top 10 als Landkarte. Zuerst Access Control und Injection, weil dort der größte Schaden droht. Dann Supply Chain über Composer Audit und Renovate. Zum Schluss Logging, Alerting und die Fehlerbehandlung, die in alten Projekten fast immer Fail Open läuft.
Für KI Features im Projekt kommt die OWASP Top 10 for LLM Applications dazu. Wie wir KI Agenten mit Guardrails in Production bringen, steht auf der Seite zu Vise Coding und im Vibe Coding Consulting.
CYPRESS.IO Ambassador und IT Consultant für QA Engenieering und Qualität in PHP Projekten.
Erreichen Sie unsere PHP Consultant Spezialisten

Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.

Häufige Fragen zu OWASP Top 10

Die Fragen, die uns PHP Teams zu OWASP am häufigsten stellen. Kurz beantwortet, mit Bezug auf Symfony und den Alltag im Projekt.
Was sind die OWASP Top 10 2026?

Die OWASP Top 10 sind die aktuell gültige Liste der zehn kritischsten Sicherheitsrisiken für Web Anwendungen. Die achte Ausgabe trägt den Namen OWASP Top 10:2025 und gilt 2026 als Referenz. Sie basiert auf Testdaten von über 2,8 Millionen Anwendungen plus einer Community Umfrage. Platz 1 bleibt Broken Access Control, neu sind Software Supply Chain Failures und Mishandling of Exceptional Conditions.

Was hat sich in den OWASP Top 10 2025 gegenüber 2021 geändert 2026?

Zwei Kategorien sind neu: Software Supply Chain Failures auf Platz 3 und Mishandling of Exceptional Conditions auf Platz 10. Server Side Request Forgery ist in Broken Access Control aufgegangen. Security Misconfiguration stieg von Platz 5 auf 2, Cryptographic Failures und Injection rutschten je zwei Plätze nach unten. Logging heißt jetzt Logging and Alerting Failures.

Ist OWASP Top 10 ein Standard oder eine Checkliste 2026?

Die OWASP Top 10 sind ein Awareness Dokument, keine vollständige Checkliste. OWASP selbst nennt sie den Einstieg in Application Security. Wer einen prüfbaren Standard braucht, nimmt den OWASP Application Security Verification Standard (ASVS). Für PHP Teams sind die Top 10 trotzdem der beste Ausgangspunkt, weil sie die Risiken priorisieren, die in der Praxis am häufigsten auftreten.

Wie setze ich OWASP Top 10 in Symfony um 2026?

Symfony deckt viele Kategorien bereits ab: Security Component und Voter für Access Control, Doctrine Parameter Binding gegen SQL Injection, Twig Auto Escaping gegen XSS, CSRF Schutz in Formularen und PasswordHasher für sichere Hashes. Der Rest ist Disziplin: composer audit in der CI, saubere Konfiguration pro Environment, Exceptions kontrolliert behandeln und Security Events loggen.

Welche Tools prüfen OWASP Top 10 Risiken in PHP 2026?

Für Supply Chain nutzen wir composer audit und Renovate. Für Injection und Taint Analyse Psalm mit Taint Mode und Progpilot. PHPStan findet unsichere Typen und tote Pfade. Cypress Tests prüfen Access Control und Fehlerseiten aus Nutzersicht. KI gestützte Scanner wie Shannon oder Claude Security ergänzen das, ersetzen aber keinen manuellen Review.

Was ist Broken Access Control?

Broken Access Control bedeutet, dass Nutzer Dinge tun oder sehen können, die ihnen nicht erlaubt sind. Klassisch: eine Bestellung über die ID in der URL aufrufen, die einem anderen Kunden gehört. In Symfony lösen Voter und die isGranted Prüfung das Problem zentral. Wichtig ist, jeden Datensatz zu prüfen, nicht nur die Route.

Was bedeutet Software Supply Chain Failures?

Die Kategorie umfasst Risiken aus Abhängigkeiten, Build Systemen und Verteilung. Ein kompromittiertes Composer Paket, eine manipulierte GitHub Action oder ein ungeprüftes Docker Image fallen darunter. OWASP meldet hier die wenigsten Funde, aber die höchsten Exploit und Impact Werte. Gegenmittel: composer.lock einchecken, composer audit, SBOM, Versionen pinnen.

Was ist Mishandling of Exceptional Conditions?

Die neue Kategorie beschreibt fehlerhafte Behandlung von Ausnahmen und Sonderfällen. Ein Beispiel: Ein Try Catch fängt alles und die Anwendung läuft im unsicheren Zustand weiter. Oder ein Timeout beim Auth Service lässt den Request durch. Die Regel lautet Fail Closed: Im Zweifel ablehnen, loggen und dem Nutzer eine neutrale Fehlerseite zeigen.

Reicht Twig Auto Escaping gegen XSS?

Für normalen HTML Kontext ja. Gefährlich wird es bei raw Filtern, bei Ausgabe in JavaScript oder in Attributen wie href. Dort braucht es den passenden Escape Kontext oder eine Allowlist. Auch Inhalte aus Rich Text Editoren müssen serverseitig bereinigt werden, etwa mit dem Symfony HTML Sanitizer.

Wie hängen OWASP Top 10 und PHP Refactoring zusammen?

Legacy PHP sammelt Sicherheitsschulden: manuelle SQL Strings, globale Session Zugriffe, Passwörter mit md5. Beim Refactoring arbeiten wir die Top 10 systematisch ab. Characterization Tests sichern das Verhalten, dann ersetzen wir Stück für Stück durch Symfony Komponenten. Security wird so ein messbarer Teil der Modernisierung.

Gibt es OWASP Top 10 auch für KI Anwendungen?

Ja. Die OWASP Top 10 for LLM Applications behandeln Prompt Injection, Excessive Agency und Datenabfluss bei KI Features. Sie sind eine eigene Liste und nicht Teil der Web Top 10. Wer KI Agenten oder Chatbots in PHP baut, braucht beide Listen.

Wie oft erscheinen die OWASP Top 10?

Etwa alle drei bis vier Jahre. Die Ausgaben erschienen 2003, 2004, 2007, 2010, 2013, 2017, 2021 und 2025. Zwischen den Ausgaben ändert sich die Liste nicht. Teams sollten die aktuelle Version in Coding Guidelines und CI Checks verankern und beim nächsten Release gezielt die Deltas prüfen.

Hilft KI Coding bei OWASP Konformität oder schadet sie?

Beides. KI Agenten kennen die OWASP Kategorien und schreiben oft korrekten Code, wenn Guidelines sie dazu zwingen. Ohne Guardrails erzeugen sie aber schnell rohe SQL Strings oder deaktivieren CSRF Schutz. Die Lösung sind AI Coding Guidelines im Projekt, Static Analysis im Pre Commit und Review der Security relevanten Diffs durch Menschen.