【问题标题】:Sonar coding rule for use of alert()使用 alert() 的声纳编码规则
【发布时间】:2013-01-26 08:18:59
【问题描述】:

我们正在使用 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()s,但也发现了$varName.alert() 之类的东西,这是误报。

如何单独查询alert()的使用情况?

而且 AST(抽象语法树)上的任何资源都会有所帮助,因此我可以在将来为其他规则解决这个问题。 (教人钓鱼等等……)

【问题讨论】:

    标签: javascript xpath code-analysis sonarqube abstract-syntax-tree


    【解决方案1】:

    以下简单的 XPath 表达式适用于我:

    //primaryExpression[@tokenValue = "alert"]
    

    【讨论】:

    • 您不知道,在哪里可以找到针对 Sonar 的 XPathes/检查的扩展集合? (例如,来自 JetBrains 产品的 JS 检查或 jshint/eslint 规则集合?)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2017-11-13
    • 2019-11-20
    • 2011-08-17
    相关资源
    最近更新 更多