Fixing XXE injection with LINQ to XML
Language-Integrated Query or LINQ is an API within the .NET framework that provides query-like syntax for writing declarative code. LINQ comes in different flavors, and LINQ to XML is one of them. LINQ to XML is an in-memory XML parser that allows you to perform XML transformations – from modifying elements and nodes to serialization.
In general, LINQ to XML is safe from XXE injection. The XDocument
class has DTD processing disabled by default. However, this can be unsafe when it's instantiated with an insecure XML parser such as XmlReader
. This recipe will show you how to find a security flaw in your LINQ to XML code and fix the bug by disabling DTD processing.
Getting ready
Using Visual Studio Code, open the sample Online Banking app folder at \Chapter05\xxe-injection03\before\OnlineBankingApp\
.
You can perform the steps for fixing XXE injections with LINQ to XML in this folder.
How to do it…
Let's take...