安全 bootstrap-sass 3.2.0.3 版本被发现藏有远程执行代码后门

mizuhashi · April 05, 2019 · Last by qiumaoyuan replied at July 10, 2019 · 9269 hits

卧槽,怀疑攻击者盗取了维护者的 gem 发布权限,发布了一个带后门的版本。

好恐怖,赶紧检查一下自己使用的库

很久没更新,我的是 3.3.5, bootstrap-sass (3.3.5)

bootstrap-sass 3.2.0.3 还有人在用吗?

好可怕…… 幸好我早就改用 post-css 了,而且不用 bootstrap 了,而且不是用 gem 的 bootstrap 了

npm 也是重灾区

Reply to tanhui2333

npm 只敢在虚拟环境用,太多木马了

理论上我们要把某个第三方库引入项目的时候,我们需要:

  1. 检查它的代码质量;
  2. 检查它的文档是否完善;
  3. 观察它的活跃度;
  4. 分析是否有恶意代码;

一旦确定使用以后,还要时刻关注第三方库的更新,尤其是安全更新

事实上,受资源以及时间限制,可能大家最关注的只有 2,3 步

Reply to rocLv

我会把 2 和 1 的顺序倒一下。然后如果代码质量可以,3 我觉得无所谓。

不过在这之前,我更倾向于自己写,其次才考虑引入第三方库。比如说我现在后台权限管理的逻辑是自己写的。有时候发现其实大家能共用的逻辑没那么多,为了图省事反而费事。

只针对 8 楼回复,与主帖不是太相关。

Rei in strong_password Rubygem 被注入漏洞 mention this topic. 08 Jul 14:34

@qiumaoyuan 這有點麻煩,因為通常剛入門 rails 都是為了不用自己造輪子,如果到最後回過頭來自己造輪子,感覺有點違背當初重複造輪子的議題。

确实。这问题本身也没有标准答案。具体怎么选择,我觉得要看自己所拥有的时间资源、负责这件事情的人本身的代码能力、第三方代码库本身的质量以及该代码库本身是否包揽了太多我不希望它做的事情等等…

其实仔细想的话,“不自己造轮子”这种行为只降低了做一件事情起步的成本。在我看来,它对“把一件事做好”并没有太大帮助。

比如说 whenever, sidekiq 这样的框架,我倾向于选择第三方的代码。首先这两个东西跟业务基本上不会有冲突,只解决技术问题。其次它们解决自身领域的问题很专业,考虑得很全面,不需要我操心太多。当然,同时也能省下我不少的开发和维护的时间。

但像权限管理这样的逻辑,很多时候很依赖具体的业务细节,开源出来的第三方代码库如果解决得问题过于全面,适用性就必然低,很有可能与使用者本身的需求有冲突;如果做得很通用,又变得几乎没有什么存在的意义——基本上它本身就没做什么事情。

You need to Sign in before reply, if you don't have an account, please Sign up first.