CSV, JSON, XML
Müller → MüllerProblem: Tabellenkalkulationsprogramme können CSV-Inhalte als Formeln interpretieren.
Beispiele: Ein Angreifer trägt folgenden Wert ein:
=HYPERLINK("http://angreifer.de")=cmd|' /C calc'!A0 (“führe folgenden Befehl aus, beende dann Eingabeaufforderung; starte Windows-Taschenrechner”)=+-@'=SUM(A1:A10)6 Datentypen in JSON:
| Datentyp | Beispiel |
|---|---|
| String | "Hallo Welt" |
| Number | 42 oder 3.14 |
| Boolean | true oder false |
| Null | null |
| Object | {"key": "value" } |
| Array | [1, 2, 3] |
Details siehe RFC 8259
package.json, tsconfig.json| Kriterium | JSON | JavaScript-Objekt (JS) |
|---|---|---|
| Keys: doppelte Anführungszeichen | erforderlich | nicht erforderlich |
| Trailing Comma | verboten | erlaubt |
| Kommentare | verboten | erlaubt |
| Werte | nur 6 Typen | auch undefined, NaN, Funktionen |
| Prototyp | keiner | Eigenschaften und Methoden können von Prototyp geerbt werden |
| Fehler | Beispiel |
|---|---|
| Trailing Comma | {"a":1,} |
| Single Quotes | {'a':'b'} |
| Unquoted Keys | {a:1} |
| Kommentare | // comment |
| Undefined | undefined |
| NaN / Infinity | NaN |
JSON kann beliebig verschachtelt werden:
| Verschachtelungs-Typ | Beispiel |
|---|---|
| Objekte in Objekten | {"user": {"name": "Max"}} |
| Arrays in Objekten | {"tags": ["a", "b"]} |
| Arrays von Objekten | [{"id": 1}, {"id": 2}] |
| Beliebig tief | theoretisch unbegrenzt |
So schreibst Du gutes JSON:
camelCase oder snake_case| Baustein | Beispiel |
|---|---|
| Prozessanweisung | <?xml version="1.0"?> |
| Elemente | <name>Wert</name> |
| Attribute | <item id="1"> |
| Text | Inhalt zwischen Tags |
| Kommentare | <!-- ... --> |
| CDATA | <![CDATA[...]]> |
CDATA = Character Data, speichert Text ungefiltert,
d. h. ohne dass XML-Sonderzeichen interpretiert werden
Wozu dient die DTD (Dokumenttyp-Definition) bei der Verwendung von XML-Dateien?
Was sind die Unterschiede zwischen einer well-formed und einer valid XML-Datei?
CSV (Comma-Separated Values) und XML (eXtensible Markup Language) sind verschiedene Dateiformate, die zur Speicherung und Übertragung von strukturierten Daten verwendet werden.
| Fehler | Beispiel |
|---|---|
| Unclosed Tags | <name>Max |
| Wrong Nesting | <a><b></a></b> |
| Case Sensitivity | <Name></name> |
| Special Chars | & unescaped |
| Multiple Roots | Zwei Root-Elemente Beispiel: <kunde> ... </kunde> <bestellung> ... </bestellung> |
| Unquoted Attrs | <item id=1> |
alter eine Ganzzahl zwischen 0 und 150 sein mussalter vorhanden ist und Text enthält<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>Welche Unterschied bestehen zwischen strukturierten, semi-strukturierten und unstrukturierten Daten?
Viel Erfolg!