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.
Hatalı
Bölüm başlığı “Hatalı”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 } });}Düzeltme
Bölüm başlığı “Düzeltme”Değişken bağlamayı (variable binding) kullanın; girdiyi asla XPath dizesine birleştirmeyin.