2017-02-08 8 views
2

ソナーに対して脆弱であるXPath.compileが使用は()XPathインジェクション

を使用する場合、静的コード分析の際に、重要な問題を提起した入力文字列

を検証するために、共通の-langs.StringUtils.escapeXmlを使用しました

しかし、まだソナーは、inputStringからのwhitlisting以外のソナー問題を解決するためにどのような方法がある同じ

XPathExpression nodePathExpression = xpath.compile(nodeName); 

を示して?

+0

問題を偽陽性としてマークしてください: – MozenRath

答えて

1

ソナーレベ問題自体は、いくつかの興味深い参考文献を指摘しており、this oneが最も役に立つと思われます。

パラメータ化されたXPathクエリを使用します(XQueryなどを使用)。これにより、データプレーンとコントロールプレーンの分離が確実になります。

又は

適切にユーザー入力を検証します。必要に応じてデータを拒否し、必要に応じてフィルタし、必要に応じてエスケープします。そのコンテキストでXPathクエリで使用される入力が安全であることを確認してください。

私はsonarqubeが入力を前に検証することを検出しないので、2番目のオプションはソナーレス問題を解決しないと思います。

+0

"パラメータ化されたXPathクエリを使用します(XQueryなどを使用)。これはデータプレーンとコントロールプレーンの分離を確実にします"あらかじめコンパイルされたxpath式についても述べています。 \t XPathExpression filterCriteriaPathExpression = xpath.compile(filterCriteria); finalブール値criteriaMatched =(ブール値)filterCriteriaPathExpression.evaluate(ノード、XPathConstants.BOOLEAN); if(!criteriaMatched){.. SonarはXpathクエリを使用しても問題を報告します –

関連する問題