XPath enjeksiyonu (ARCH7108)
Anahtar php.security.xpath-injection · Önem error · Kategori security · CWE CWE-643
XPath ifadesini kullanıcı girdisiyle birleştirmek, saldırganların sorguyu değiştirip kimlik doğrulamayı atlamasına veya belgedeki diğer verileri sızdırmasına olanak tanır. Girdi bağlı değişkenlerle geçirilmelidir.
Hatalı
Bölüm başlığı “Hatalı”<?php$xpath = new DOMXPath($dom);$user = $_POST['user'];$nodes = $xpath->query("//user[name='$user']");<?php$xpath = new DOMXPath($dom);$query = $xpath->evaluate( '//user[name = $name]', null, ['name' => $_POST['user']]);Düzeltme
Bölüm başlığı “Düzeltme”Kullanıcı girdisini XPath ifadesine birleştirmeyin; değerleri bağlı değişken olarak geçirin veya katı şekilde kaçışlayın.