YAML-Konfiguration (.yaml)

YAML Standard

YAML Ain't Markup Language (YAML) ist das dominante Datenserialisierungsformat für moderne DevOps, Cloud-Infrastruktur (Kubernetes, Docker Compose) und CI/CD-Automatisierung und legt den Schwerpunkt auf die Lesbarkeit durch den Menschen durch saubere Leerzeicheneinrückung.

Von YAML zu JSON konvertieren

Kostenloser Konverter von YAML zu JSON im Browser. Konvertieren Sie Dateien sofort auf Ihrem Gerät.

Untersuchen & Metadaten

Betriebssysteme und Dateianalyseprogramme identifizieren YAML-Dateien anhand der führenden binären Bytefolge:

Dateien auswählen oder hierher ziehen

Privat - Dateien verlassen Ihr Gerät nie

oder einfügen Strg+V
Datenschutzgarantie ohne Netzwerkübertragung: 0 Bytes an externe Server hochgeladen. Die gesamte Verarbeitung erfolgt lokal in Ihrer Browser-Sandbox.

Headersignatur auf Byte-Ebene (Magic Bytes)

Betriebssysteme und Dateianalyseprogramme identifizieren YAML-Dateien anhand der führenden binären Bytefolge:

HEX-SIGNATUR (OFFSET 0):

2D 2D 2D 0A

ASCII-DARSTELLUNG: ---\n

Standardisierung: YAML 1.2.2 Spezifikation

Technische Daten

Container-ArchitekturEinrückungsbasiertes, menschenfreundliches Datenserialisierungsformat als Superset von JSON, das Anker und Aliase unterstützt
KompressionUnkomprimierter Textdatenstrom
Byte-ReihenfolgeUTF-8 / Unicode-Textdatenstrom
FarbräumeNicht zutreffend (Datenserialisierung)
Kanäle und StrukturMappings (Schlüssel-Wert-Wörterbücher), Sequenzen (Listen), Skalartypen (Strings, Zahlen, Booleans) und Anker (&ref/*ref)
Max. AbmessungenUnbegrenzte Dokumentgröße (unterstützt Multi-Dokumenten-Datenströme, die durch '---' getrennt sind)
TransparenzNone
Streaming und progressive DarstellungMulti-Dokumenten-Datenströme ermöglichen eine sequenzielle Verarbeitung von Dokument zu Dokument

Technische Vergleichsmatrix: YAML und Konkurrenzformate

Technisches AttributYAML (Aktuelles Format)JSONTOMLXML
Syntax-StilEinrückungs-Leerzeichen-HierarchieStrenge Klammern und AnführungszeichenTabellen und Schlüssel=Wert-PaareAusführliche Öffnungs-/Schließungs-Tags
KommentarunterstützungNativ (#-Kommentare)Keine Kommentare erlaubtNativ (#-Kommentare)<!-- Kommentare -->
DevOps-EinführungDie Unterstützung unterscheidet sich je nach Programm.Die Unterstützung unterscheidet sich je nach Programm.Rust/Python-PaketkonfigurationUnternehmens-Legacy-Konfiguration
DatenwiederverwendungNative Anker (&) & Aliase (*)Keine (manuelle Duplizierung)Keine (manuelle Duplizierung)XML-Entitäten

Häufige Datenbeschädigungen und Leitfaden zur Wiederherstellung anhand von Hex-Daten

Parserfehler: 'mapping values are not allowed here' oder Einrückungsfehler.

Ursache: Mischen von Tabulatoren mit Leerzeichen oder falsch ausgerichteten Einrückungsebenen.

Wiederherstellung: Konvertieren Sie Tabulatoren in Leerzeichen und validieren Sie die Syntax mit dem File2File.app YAML Formatter.

Sicherheitsanalyse und Angriffsvektoren für Parser

YAML-Parser, die benutzerdefinierte Typ-Tags unterstützen (wie PyYAMLs 'yaml.load()'), ermöglichten historisch gesehen Remotecodeausführung über beliebige Objektinstantiierungen.

Bekannte Angriffsvektoren

  • Willkürliche Codeausführung durch unsichere Objektdeserialisierungs-Tags (z. B. '!!python/object/apply').
  • Entity-Expansion-Bomben (Äquivalent zu Billion Laughs unter Verwendung von YAML-Ankern und -Aliasen).
  • Typverwirrungs-Sicherheitslücken aufgrund impliziter Interpretation boolescher Werte und Zeitstempel.

Empfohlene Schutzmaßnahmen: Verwenden Sie immer sichere YAML-Parser ('yaml.safe_load()' in Python) und erzwingen Sie Tiefenlimits für die Anker-Expansion.

Historische Ursprünge & Meilensteine

2021Die YAML-1.2.2-Überarbeitung wird veröffentlicht und verfeinert die JSON-Kompatibilität sowie die formalen Grammatikdefinitionen.
2009YAML 1.2 standardisiert YAML als striktes Superset von JSON, was bedeutet, dass jedes gültige JSON auch ein gültiges YAML ist.
2001Clark Evans, Ingy döt Net und Oren Ben-Kiki erstellen YAML als menschenfreundliche Alternative zu XML.

Hauptvorteile & Stärken

  • YAML wird häufig in Infrastrukturwerkzeugen verwendet, aber Unterstützung und Verhalten unterscheiden sich je nach Implementierung.
  • Saubere, lesbare Syntax: vermeidet durch intuitive Einrückung die übermäßige Verwendung von geschweiften und eckigen Klammern sowie Anführungszeichen.
  • Unterstützt Referenzen und Anker (&anchor / *anchor), um wiederholte Konfigurationsblöcke ohne Duplizierung wiederzuverwenden.

Technische Einschränkungen & Nachteile

  • Leerzeichenempfindlich: Ein versehentlicher Tabulator oder ein einzelnes zusätzliches Leerzeichen kann die Dokumentenhierarchie beschädigen oder Parserfehler verursachen.
  • Berüchtigte Typumwandlungs-Bugs: Nicht in Anführungszeichen gefasste Wörter wie 'no', 'on', 'yes' oder Ländercodes ('NO' für Norwegen) können stillschweigend zu booleschen Werten werden.
  • Deutlich langsamere Analysegeschwindigkeit im Vergleich zu Binärformaten oder strengem JSON.

Interessante technische Fakten

  • YAML stand ursprünglich für 'Yet Another Markup Language', wurde jedoch scherzhaft in das rekursive Akronym 'YAML Ain't Markup Language' umbenannt, um die Datenserialisierung zu betonen.
  • Das 'Norwegen-Problem' ist ein berühmter Programmierfehler, bei dem der Ländercode 'NO' in einer YAML-Datei als der Boolean 'false' analysiert wurde.
  • Jede gültige JSON-Datei der Welt ist gleichzeitig auch eine zu 100 % gültige YAML-Datei.

Häufig gestellte technische Fragen

Wofür wird YAML verwendet?

YAML ist die primäre Konfigurationssprache für Cloud Computing, Kubernetes-Cluster-Bereitstellung, Docker-Compose-Dateien, GitHub-Actions-Workflows und Softwareeinstellungen.

Kann ich Tabulatoren in YAML-Dateien verwenden?

Nein. Die offizielle YAML-Spezifikation verbietet die Verwendung von Tabulatorzeichen für die Einrückung strikt; Sie müssen immer Leerzeichen verwenden (typischerweise 2 Leerzeichen pro Ebene).

Wie kann ich YAML in JSON konvertieren?

Sie können YAML-Dateien mit File2File.app direkt in Ihrem Webbrowser mit absoluter Privatsphäre mit einem Klick in sauberes, validiertes JSON konvertieren.