1

Sonar 3.4.1 を使用して、継続的インテグレーション サーバーで JavaScript を分析しています。

多くのカスタム ルールを追加しました。たとえば、console.*デバッグ機能のいずれかが使用されている場合、ブロッキング違反を発行します。

XPath クエリの例:

//callExpression/memberExpression[count(*) = 3 and primaryExpression[@tokenValue = "console"] and identifierName[@tokenValue = "log"]]

の使用規則を追加したいのですが、alert(...)うまく動作しないようです。

たとえば、次のように、XPath クエリで多くのバリエーションを試しました。

//callExpression/memberExpression[count(*) = 2 and primaryExpression[@tokenValue = "alert"]]

私が得ることができる最善のことは、が発見されたということですが、alert()同様のものも発見されました$varName.alert()。これは誤検知です。

alert()の使用法を単独で照会するにはどうすればよいですか?

また、AST (Abstract Syntax Trees) に関するリソースがあれば役立つので、将来他のルールでこれを理解することができます。(人に魚の釣り方を教えたり…)

4

1 に答える 1

2

次の単純なXPath式が機能します。

//primaryExpression[@tokenValue = "alert"]
于 2013-02-11T09:59:55.857 に答える