扩展Helper - 通过SPCAF / ESLint识别的安全风险?

时间:2017-03-27 11:42:01

标签: typescript eslint

(PreScript:我最初会在GitHub中提出这个问题,但模板建议一般问题在这里而不是在那里,因为这在技术上真的不是bug。) < / 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关于序列明确包含在parantheses中的规则的例外情况,三元组中的表达式是否可以更新为包含在两个括号中?

1 个答案:

答案 0 :(得分:1)

这不是您在此处介绍的生成代码中的一个问题,并且有安全的方法可以使用它,因为有安全的方法可以使用其他形式的JavaScript来引起安全问题。

有一种方法可以使用逗号运算符来间接评估代码。这也可能导致程序员不想要的代码副作用,在某些示例中可以很容易地利用它。

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

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

亲切的问候, 休

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