¿Cómo puedo evitar la inyección de XPATH en .NET Framework?Cómo prevenir la inyección de XPath/XML en .NET
Anteriormente utilizábamos la concatenación de cadenas para crear sentencias XPATH, pero descubrimos que los usuarios finales podían ejecutar algunas XPATH arbitrarias. Por ejemplo:
string queryValue = "pages[@url='" + USER_INPUT_VALUE + "']";
node = doc.DocumentElement.SelectSingleNode(queryValue);
¿Sería suficiente quitar comillas simples y dobles de las cadenas de entrada?
O, ¿el .NET framework admite consultas XPATH parametrizadas?
En mi caso, estoy tratando de buscar un nodo en un archivo XML. Entonces XSLT es excesivo. – frankadelic
Los parámetros fuertemente tipados son posibles no solo usando una transformación XSLT: vea mi respuesta. –