清除SimpleXMLElement :: xpath表达式中的变量

时间:2018-07-31 16:52:50

标签: php xpath

我正在使用XPath在SimpleXMLElement中选择XML节点。我的XPath表达式是变量:

$xml->xpath("a[@href = '{$some_specific_value_of_href}']");

由于我无法完全控制$some_specific_value_of_href变量的值,因此上面的代码很容易受到注入攻击,其中变量的恶意值将产生任意元素集。

大多数成熟的XML API(例如lxml library for Python)允许用户在XPath表达式中指定占位符变量名称,并编译XPath表达式而不会带来注入攻击的风险:

xml.xpath(
    "a[@href = $placeholder_variable_name]",  # Python performs no substitution here
    placeholder_variable_name=some_specific_value_of_href
);

PHP 7是否具有类似的功能?

0 个答案:

没有答案