İçeriğe geç

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.

<?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']]
);

Kullanıcı girdisini XPath ifadesine birleştirmeyin; değerleri bağlı değişken olarak geçirin veya katı şekilde kaçışlayın.