İçeriğe geç

XPath injection (ARCH318)

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

Kullanıcı girdisini bir XPath ifadesine birleştirmek saldırganın sorguyu değiştirmesine ve yetkisiz düğümlere erişmesine olanak tanır. Değişkenler kullanın.

var node = doc.SelectSingleNode(
"/users/user[name='" + userName + "']");
var expr = nav.Compile("/users/user[name=$name]");
var ctx = new CustomContext(); // resolves $name to a bound value
expr.SetContext(ctx);
var node = nav.SelectSingleNode(expr);

Girdiyi dize olarak birleştirmek yerine XPathExpression değişkenleri/bağlı parametreler kullanın.