如何删除或替换易受攻击的gem依赖项?

时间:2017-12-10 01:50:14

标签: ruby-on-rails ruby

我有一个我几年前开发的应用程序,在Gemfile.lock中有一些依赖项,现在是安全漏洞,但是当我运行时 bundle updatebundle --patch gemnamegem install updated-gem,我会继续收到消息:

Bundler attempted to update actionview but its version stayed the same

首次出现有漏洞问题的宝石,如何解决?

2 个答案:

答案 0 :(得分:1)

您在Gemfile.lock文件中没有执行任何操作,只要您在gem中安装了一个版本的rails,它们就会自动由rails构建。

首先,我会安装一个名为bundle-audit的宝石。按照有关如何使用它的文档中的说明,此gem将告诉您哪些宝石易受攻击。

然后查看Gemfile中的rails版本,而不是Gemfile.lock,并将版本与gem依赖项版本进行比较。如果您发现它们是相同版本或类似版本,则可能是rails版本的gem附带的gem依赖项。

所以你要做的就是将你的rails版本改为下一个推荐的版本。

执行bundle update,这将从头开始重新构建Gemfile.lock中的gem依赖关系,然后你应该是金色的。您可以通过执行另一个bundle-audit check命令来验证这一点。如果它没有发现任何漏洞或类似的东西,那么你就完成了。

答案 1 :(得分:0)

这更像是一种去除易受攻击的宝石的手动方式。您可能必须在

中放置没有安全漏洞的正确宝石版本

Gemfile

这样,假设此版本没有安全漏洞

gem 'rails', '5.1.2'

重命名或删除Gemfile.lock

mv Gemfile.lock Gemfile.lock_

并运行

bundle update

这更像是一种去除易受攻击的宝石的手动方式。您可能必须在Gemfile gem 'rails', '5.1.2'中添加没有安全漏洞的正确宝石版本并执行bundle update