It's time to take XML out back and shoot it

XML Anxiety

Article from Issue 150/2013
Author(s):

XML security problems are numerous, but you can take steps to limit your exposure – or you can use a different standard.

For this month's column, I intended to write about XML security and how to avoid all the attacks and problems that can occur. I started making a list of issues both well known and not so well known. After listing 20 items, I realized I wouldn't have enough space to cover everything [1], so I moved on to plan B: Instead of focusing on the problems, I'd look at the solutions. This worked reasonably well until I realized one small problem: Even if you use software like Python's new defusedxml [2] and defusedexpat [3] a number of problems are still difficult to deal with.

A Brief History of XML

XML came from the W3C (World Wide Web Consortium), who also brought us SGML (from which XML comes), SOAP, HTML, you name it. To say that XML and its related family of standards is complicated is a gross understatement – with XML, XML Schema, RELAX NG, XPath, XSLT, XML Signatures, and XML Encryption to name a few. XML also has been extended into XHTML, RSS, Atom, and KML, to name a few more standards. About the only good news I have is that XML and most of its family of standards are NOT Turing complete [4] (unlike, say, PostScript), but you can embed some pretty funky logic into XML files that can cause problems in the various XML parsers.

One note: Almost no one directly uses XML; it's most often used as an interchange format to move data from an application on system A to another application on system B. As such, many virtualization systems, for example, use XML for manifests/control files. In general, XML is a lot like plumbing – everyone uses it but nobody actually thinks about it until it breaks and you have to call in a plumber to fix it.

[...]

Use Express-Checkout link below to read the full article (PDF).

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Security Lessons – XML Security

    XML security problems are numerous, but you can take steps to limit your exposure – or you can use a different standard.

  • JSON Deep Dive

    JSON data format is a standard feature of today's Internet – and a common option for mobile and desktop apps – but many users still regard it as something of a mystery. We'll take a close look at JSON format and some of the free tools you can use for reading and manipulating JSON data.

  • More than a Word

    Asking Alexa only for built-in functions like the weather report gets old quickly, and add-on skills from the skills store only go so far. With a few lines of code, Mike teaches this digital pet some new tricks.

  • Index Search with Lucene

    Even state-of-the-art computers need to use clever methods to process ever-increasing amounts of document data. The open source Lucene framework uses inverted indexing for fast searches of document collections.

  • Migrating Music

    Use a Python API to migrate a music library from SQL to a NoSQL document database.

comments powered by Disqus