XPath injection (ARCH7108)
Ce contenu n’est pas encore disponible dans votre langue.
Key php.security.xpath-injection · Severity error · Category security · CWE CWE-643
Concatenating user input into an XPath expression lets attackers alter the query to bypass authentication or disclose other data in the document. Input must be passed as bound variables.
Incorrect
Section titled “Incorrect”<?php$xpath = new DOMXPath($dom);$user = $_POST['user'];$nodes = $xpath->query("//user[name='$user']");Correct
Section titled “Correct”<?php$xpath = new DOMXPath($dom);$result = $xpath->evaluate( '//user[name = $name]', null, ['name' => $_POST['user']]);Do not concatenate user input into the XPath expression; pass values as bound variables or strictly escape them.