使用XPath.compile()很容易受到XPath注入的攻击

时间:2017-02-08 10:41:38

标签: java xml sonarqube

在使用XPath.compile的静态代码分析期间,Sonar提出了一个关键问题

使用common-langs.StringUtils.escapeXml来验证输入字符串

但是声纳仍然显示相同的

XPathExpression nodePathExpression = xpath.compile(nodeName);

除了将输入字符串列入白名单之外,有没有办法解决声纳问题?

1 个答案:

答案 0 :(得分:1)

sonarqube问题本身指出了一些有趣的参考文献,this one似乎是最有用的参考文献。

  

使用参数化的XPath查询(例如使用XQuery)。这有助于确保数据平面和控制平面之间的分离。

  

正确验证用户输入。在适当的时候拒绝数据,在适当的地方过滤并在适当的时候逃避确保将在XPath查询中使用的输入在该上下文中是安全的。

我猜第二个选项不会解决sonarqube问题,因为sonarqube没有检测到你之前验证了输入。