İçeriğe geç

XPath enjeksiyonu (ARCH4108)

Anahtar java.security.xpath-injection · Önem error · Kategori security · CWE CWE-643

XPath ifadesini güvenilmeyen girdiyle birleştirerek oluşturmak, saldırganların sorguyu değiştirerek erişmemesi gereken XML verilerini açığa çıkarmasına veya kimlik doğrulamayı atlamasına olanak tanır.

String expr = "/users/user[name='" + name + "']";
XPathExpression xp = XPathFactory.newInstance().newXPath().compile(expr);
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setXPathVariableResolver(v -> name);
XPathExpression xp = xpath.compile("/users/user[name=$name]");

XPath değişken çözümleyicisiyle parametreli ifadeler kullanın; girdiyi asla ifade dizesine birleştirmeyin.