2017-03-27 1 views
0

(PreScript:私は当初GitHubの問題としてこの問題を提起していましたが、この技術的に本当にバグではないので、一般的な質問はそこにあるのではなくここに行ってください。拡張ヘルパー - SPCAF/ESLintで識別されるセキュリティリスク?

TypeScript出力(v 2.1.4)に対してSPCAFコード解析フレームワーク(v.6.9.2.2802)を実行すると、解析されたすべてのJSファイルの先頭に表示される拡張子ヘルパーで次のセキュリティリスクが確認されます。

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リントルールがコンマではなくセミコロンで区切られている2つのステートメントで問題があることが表示されます。

私の質問です:これらのステートメントがコンマで区切られている場合、本当にセキュリティ上のリスクがありますか?その場合、これはヘルパーのエミッタで更新できますか?

そうでなければ、シーケンスに関するルールに対するES Lintの例外は、明示的に括弧で囲まれているため、三項内の式を更新して2つの括弧で囲むことができますか?

答えて

1

これはあなたがここに示したように生成されたコードでは問題にならないため、セキュリティ上の問題を引き起こす他の形式のJavaScriptを使用する安全な方法があるため、これを使用する安全な方法があります。

コードの間接的な評価にカンマ演算子を使用する方法があります。これはまた、プログラマーが意図していない副作用をコードに生じさせる可能性があり、いくつかの例で容易に利用することができます。

このエラーは生成されるコードから無視できます。これはセキュリティ上のリスクしかなく、このルールはTypeScriptと有効ではありません。

ルールは、ターゲット言語とプラットフォーム用に構成する必要があります。一部のルールは、一部の環境では適用されません。

敬具、 ヒュー

[ソース] 私はSPCAFのRencore GmbH社クリエーターのリード開発者です。

関連する問題