İçeriğe geç

XPath enjeksiyonu (ARCH3108)

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

XPath ifadesini güvenilmeyen girdiyle birleştirmek, saldırganların sorguyu değiştirip yetkilendirmeyi atlamasına veya veri açığa çıkarmasına olanak tanır.

import { select } from "xpath";
function findUser(doc: Node, name: string) {
// name="' or '1'='1"
return select(`//user[@name='${name}']`, doc);
}
import xpath from "xpath";
function findUser(doc: Node, name: string) {
const expr = xpath.parse("//user[@name=$name]");
return expr.select({ node: doc, variables: { name } });
}

Değişken bağlamayı (variable binding) kullanın; girdiyi asla XPath dizesine birleştirmeyin.