【问题标题】:Extends Helper - Security Risk identified via SPCAF/ESLint?扩展助手 - 通过 SPCAF/ESLint 识别的安全风险?
【发布时间】:2017-08-20 02:28:51
【问题描述】:

(PreScript:我最初打算在 GitHub 中将此作为一个问题提出,但模板建议将一般问题放在此处而不是那里,因为这在技术上确实不是错误)。 p>

当我们针对 TypeScript 输出 (v 2.1.4) 运行 SPCAF 代码分析框架 (v.6.9.2.2802) 时,我们会在每个分析的 JS 文件顶部发出的 Extends Helper 中发现以下安全风险:

The comma operator used in sequences can cause confusion what the code should actually return

https://docs.spcaf.com/v6/SPC028904_NoCommaOperator.html?version=6.9.2.2802

(此规则基于 ESLint 规则:http://eslint.org/docs/rules/no-sequences.html

这与助手中的这一行有关:

d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

ES Lint 规则似乎存在两个语句用逗号而不是分号分隔的问题。

我的问题是:用逗号分隔这些语句是否存在真正的安全风险,如果有,是否可以在助手的发射器中更新?

否则,根据 ES Lint 关于序列被显式包裹在括号中的规则的例外,是否可以将三元中的表达式更新为包裹在两个括号中?

【问题讨论】:

    标签: typescript eslint


    【解决方案1】:

    正如您在此处介绍的那样,在生成的代码中这不是问题,并且有安全的方法可以使用它,因为使用其他形式的 JavaScript 会导致安全问题。

    有一种方法可以使用逗号运算符对代码进行间接评估。这也可能导致代码中出现程序员不希望出现的副作用,在某些示例中很容易被利用。

    可以从生成的代码中忽略此错误,因为它只是一个可能的安全风险,并且此规则对 TypeScript 无效。

    应针对目​​标语言和平台配置规则。有些规则在某些环境中并不适用。

    亲切的问候, 休

    [来源] 我是 Rencore GmbH 的 SPCAF 创建者的首席开发人员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多