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.
Hatalı
Bölüm başlığı “Hatalı”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 valueexpr.SetContext(ctx);var node = nav.SelectSingleNode(expr);Düzeltme
Bölüm başlığı “Düzeltme”Girdiyi dize olarak birleştirmek yerine XPathExpression değişkenleri/bağlı parametreler kullanın.