@typescript/eslint-plugin 的漏洞?

Vulnerabilities of @typescript/eslint-plugin?

有两个包,TSLint,

https://github.com/palantir/tslint

它是克服者,typescript-eslint,

https://github.com/typescript-eslint/typescript-eslint

他们有一些相同的维护者。 typescript-eslint 在它的文档中指的是旧版本。

Palantir 是一家公司,它的名字不仅有一种暮光之城的味道,而且我不确定,这是一个安全的包装。他们的产品被某些人视为具有洞察力,而对另一些人则被视为间谍软件。所以还不完全清楚,如果它是对 public 的仁慈贡献,或者可能有一些关于它的东西,那应该被视为批评。

特别是如果我们必须关心我们应用程序中的个人数据。 @typescript/eslint-plugin 无法从 Create-React-App with typescript 的构建环境中删除,因为它也是“.eslintrc”中提到的“解析器”。

如何平息烦恼?如何确定没有泄漏?或者我可以将它从 node_modules 文件夹中排除并能够从 create-react-app 获得“构建”吗?

解析器的 AST 扫描还允许插入功能以捕获流经函数的所有内容。很容易编写自己的规则,可以在每次函数调用时部署一堆包装器,将所有信息发送到某个位置,只需在每个文件中应用 eslint --fix 即可。

ESLint 不是漏洞向量,因为它只涉及 源代码。这意味着为了让它破坏您的代码,您必须执行以下操作:

  1. 安装受损的 eslint 插件。
  2. 手动开启受损的 eslint 规则。
  3. 运行 通过 eslint --fix.
  4. 受损的自动修复
  5. 忽略对您的源代码的更改并将受损代码交付生产。

(1) 和 (2) 是一个足够的障碍,它不会发生,或者如果它发生,那么有人会很快检测到危害并报告安全问题。 (3) 需要工程师手动操作才能引起。 (4) 在合并您的代码之前很容易被任何同行评审过程发现,因为; eslint 仅在源代码上运行。

create-react-app 也已正确配置,以确保 eslint 不会 运行 您的构建代码。 AFAIK - 它在进行生产构建时也不会 运行 ESLint。


现代 JS 开发(就像任何依赖第三方代码的语言开发一样)是建立在信任链之上的。您相信您安装的软件包及其依赖项是安全的。 CRA 已决定 eslint、typescript-eslint 等都是可信的 - 因此他们将它们作为依赖项包含在内。

如果您信任 CRA,那么您也必须信任它的依赖关系。

如果您不信任 CRA 或其依赖项之一 - 那么您就不会安装它,而是构建您自己的内部解决方案。


tslint 是安全的,而且一直都是。如果 plantir 是一些可疑的公司并将恶意软件注入他们的包 - 有人会很快找到它并报告漏洞 - 破坏项目和公司的信誉。

typescript-eslint 与 palantir 或 tslint 无关。这些项目是完全独立的——它们有不同的维护者,并且 typescript-eslint 不属于任何公司。

typescript-eslint(如 tslint)也是完全开源的——如果你担心什么——你可以自己花时间验证它是否安全。

typescript-eslint(如 tslint)也作为未混淆、未压缩的 JS 发送到 NPM(并因此发送到您的计算机)。您可以轻松地花时间验证您收到的代码是否与 OSS 存储库中的代码匹配并且是安全的。