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.
Hatalı
Bölüm başlığı “Hatalı”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]");Düzeltme
Bölüm başlığı “Düzeltme”XPath değişken çözümleyicisiyle parametreli ifadeler kullanın; girdiyi asla ifade dizesine birleştirmeyin.