使用 "check" 包导致另一个包出错

Using "check" package causes another package to error

我正在使用 Check package to validate parameters passed to Meteor methods. And I'm using Audit argument checks 来执行此操作。

但是,我添加了另一个包 Meteor Tags,当我尝试使用 Tags 包中的方法时,出现服务器错误 "Exception while invoking method '/patterns/addTag' Error: Did not check() all arguments during call to '/patterns/addTag'"。

我想我明白为什么会发生此错误 - Tags 包中的方法不检查其输入,因此 Audit Argument Checks 会生成错误。但我找不到任何解决方法,除了 1) 不强制检查,或 2) 破解 Tags 包方法以便它们使用检查。这些似乎都不是一个很好的选择 - 检查服务器参数是个好主意,破解一个包不太容易维护。

有人知道是否有任何聪明的方法可以将 'Audit argument checks' 与提供新服务器方法的包一起使用吗?查了文档,网上也查了,没找到答案。

我希望这个问题是有道理的。

使用 audit-argument-checks 就像在说:"I want to be serious about the security of the methods in my app." 它对应用代码库中的所有方法都是全局的,包括已安装包中的方法。

无法指定检查应用程序的哪些部分,因为这等同于说:"I want to be serious about the security of the methods I've written, but I don't care about the security holes created by some pacakges"(这不会产生很有道理)。

软件包作者注意事项

检查你的方法参数。这并不难,而且它可以防止这种情况发生。坦率地说,没有这种基本安全性的软件包一开始就不应该安装。

你应该做什么

除非您有一次性应用,否则我不建议删除 audit-argument-checks。相反,我会执行以下操作(假设包裹确实有价值):

  1. 在 github 上提出问题,让维护者知道发生了什么。
  2. 分叉代码,并添加所需的检查。将此版本保留为 local package.
  3. 提交变更请求。

如果一切顺利,您的 PR 将被接受,每个人都可以从更改中受益。在最坏的情况下,您仍然拥有可在您的应用中使用的本地副本。