我有一个我几年前开发的应用程序,在Gemfile.lock中有一些依赖项,现在是安全漏洞,但是当我运行时
bundle update
或bundle --patch gemname
或gem install updated-gem
,我会继续收到消息:
Bundler attempted to update actionview but its version stayed the same
首次出现有漏洞问题的宝石,如何解决?
答案 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