XML-konfig (.xml)

W3C Standard

Extensible Markup Language (XML) är ett mångsidigt uppmärkningsspråk som definierar en uppsättning regler för att koda dokument i ett format som är både läsbart för människor och maskiner.

Komprimera XML online

Privat - filer lämnar aldrig din enhet

Granska och metadata

Operativsystem och filanalysverktyg identifierar XML-filer genom att granska den inledande sekvensen av binära byte:

Välj eller släpp filer här

Privat - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddades upp till externa servrar. All bearbetning skedde lokalt i webbläsarens sandlåda.

Signatur i filhuvudet på bytenivå (magiska byte)

Operativsystem och filanalysverktyg identifierar XML-filer genom att granska den inledande sekvensen av binära byte:

HEX-SIGNATUR (OFFSET 0):

3C 3F 78 6D

ASCII-REPRESENTATION: <?xm

Standardisering: W3C Recommendation (XML 1.0 Fifth Edition)

Tekniska specifikationer

ContainerarkitekturHierarkiskt textuppmärkningsspråk med anpassade semantiska taggar och attribut
KomprimeringGzip/Deflate ger 85 % - 92 % komprimering av utförliga stängningstaggar
ByteordningUTF-8 / UTF-16 teckenström bestämd av XML-deklarationens kodningsattribut
FärgrymderEj tillämpligt
Kanaler och strukturElement (<tag>), attribut (attr="val"), CDATA-block, bearbetningsinstruktioner
Maximala dimensionerObegränsad hierarkisk trädstruktur
TransparensEj tillämpligt
Strömning och progressiv visningSAX-tolkar (Simple API for XML) och StAX-tolkar möjliggör minneseffektiv strömläsning

Teknisk jämförelsematris: XML jämfört med konkurrenter

Tekniskt attributXML (Aktuell)JSONYAMLProtocol Buffers
OrdrikedomHög (stängningstaggar och attributsyntax)Låg (kompakt nyckel-värde-format)Låg (indenteringsbaserad)Ultralåg (binär serialisering)
SchemavalideringMogna XSD- och DTD-standarder med kompileringskontrollJSON Schema (valfritt)JSON Schema / YAML-schemanStrikta .proto-schemadefinitioner
NamnrymderInbyggt stöd för XML-namnrymder (xmlns)Ingen inbyggd namnrymdsmekanismIngen inbyggd namnrymdsmekanismPaketdeklarationer
TransformationerXSLT-deklarativa transformationspipelinesAnpassad kod / jq-skriptAnpassad kodAnpassad kod

Vanliga skadeorsaker och hex-återställningsguide

XML-tolkningsfel: felaktig tagg eller odefinierad entitet.

Grundorsak: Oescapade reserverade tecken (som ”&”, ”<” eller ”>”) eller skillnad i skiftläge mellan öppnande och stängande taggar.

Återställning: Ersätt '&' med '&amp;', '<' med '&lt;', '>' med '&gt;', eller omslut godtycklig text i blocken '<![CDATA[ ... ]]>'.

Säkerhetsanalys och attackvektorer för tolkar

XML-tolkar har historiskt sett varit en av de mest attackerade komponenterna inom företagsteknologi på grund av kraftfulla DTD- och entitetsexpansionsfunktioner.

Kända attackvektorer

  • XML External Entity (XXE): Skadlig DOCTYPE som refererar till lokala serverfiler ('file:///etc/passwd') eller interna nätverksändpunkter.
  • Billion Laughs-attack (XML-bomb): Nästlade entitetsdeklarationer som expanderar exponentiellt i minnet för att orsaka överbelastning.
  • XPath-injektion: Orensad användarindata som tillåter obehöriga sökfrågor mot XML-databaser.

Rekommenderade skyddsåtgärder: Inaktivera alltid extern DTD-upplösning och extern entitetsbearbetning (sätt egenskapen 'disallow-doctype-decl' till true) i XML-tolkar.

Historiskt ursprung och milstolpar

2008W3C publicerar XML 1.0 Fifth Edition, vilket standardiserar modernt internationellt teckenstöd.
2000W3C publicerar XML Schema 1.0 (XSD) och DOM Level 2, vilket etablerar strukturerad typning och händelsearkitekturer.
1998W3C publicerar XML 1.0 Recommendation som en förenklad, webbvänlig delmängd av SGML.

Viktiga fördelar

  • Grundlig schemavalidering med XSD (XML Schema Definition) eller DTD säkerställer strikt dataintegritet.
  • Namnrymder (xmlns) förhindrar namnkonflikter för element i komplexa dokument med flera källor.
  • Kraftfulla verktyg för frågor och transformationer (XPath, XSLT, XQuery).

Tekniska begränsningar

  • Extremt ordrikt: stängningstaggar upprepar elementnamn, vilket skapar stora filer och hög bandbreddsförbrukning.
  • DOM-tolkning bygger stora minnesintensiva objektträd.
  • Känsligt för säkerhetssårbarheter som XML External Entity (XXE) och entitetsexpansion.

Intressant teknisk kuriosa

  • XML är en förenklad delmängd av SGML (Standard Generalized Markup Language), utformad för att fungera sömlöst över World Wide Web.
  • Moderna kontorsdokument (.docx, .xlsx), vektorgrafik (.svg) och RSS-flöden är alla specialiserade XML-dialekter.
  • Den klassiska överbelastningsattacken 'Billion Laughs' använder endast 1 kilobyte med nästlade XML-entiteter (lol1 som refererar till tio lol0, upp till lol9) för att expandera exponentiellt till 3 gigabyte minne vid tolkning.

Vanliga tekniska frågor

Vad är skillnaden mellan välformad och giltig XML?

'Välformad' XML följer de grundläggande syntaxreglerna (matchande taggar, citattecken runt attribut, ett enda rotelement). 'Giltig' XML är både välformad OCH följer strikt en extern schemadefinition (XSD eller DTD).

Varför ersatte JSON XML för de flesta webb-API:er?

JSON mappar direkt till inbyggda datastrukturer i JavaScript och programmeringsspråk (hash-tabeller och matriser) med mycket mindre överflödig kod, snabbare tolkning och mindre nätverksnyttolaster.

Vad är en sårbarhet för XML External Entity (XXE)?

En XXE-sårbarhet uppstår när en XML-tolk bearbetar ett otillförlitligt dokument med en aktiverad extern DTD (Document Type Definition). Angripare kan definiera entiteter som pekar på lokala serverfiler (såsom systemkonfigurationer) eller interna nätverks-URL:er, vilket gör att servern läser och avslöjar konfidentiella data.