gpt4 book ai didi

ruby - 我如何确保 Ruby 使用不易受到 Heartbleed 攻击的 OpenSSL?

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:01 27 4
gpt4 key购买 nike

继 Heartbleed 错误之后,this post on ruby-lang.org描述了如何检查漏洞和升级。

它包括这个建议:


要验证您链接到 Ruby 的 OpenSSL 库版本,请使用以下命令:

ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'

要验证当前随 Ruby 安装的 OpenSSL 版本,请使用以下命令:

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'

这两种检查有何区别?如果任一命令返回错误版本,建议采取什么措施?

最佳答案

问了一些问题后elsewhere ,我目前的理解是这样的:

  • OpenSSL 从未与 Ruby 一起编译;在编译时,Ruby 被简单地告知去哪里寻找 OpenSSL。
  • ruby -r rbconfig -e 'puts RbConfig::CONFIG["configure_args"]' 应该告诉您 Ruby 将在哪里寻找各种可执行文件,包括 OpenSSL
  • 重要的是该位置的 OpenSSL 副本是最新的;在那里 cd 并使用 ./openssl version 来查找。
  • ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call (0)' 应该给出与直接运行 openssl version 相同的答案,因为它实际上询问了 Ruby 正在使用的 OpenSSL 副本以报告其版本号
  • OpenSSL::OPENSSL_VERSION 可能已过时;它报告编译时找到的版本。

关于ruby - 我如何确保 Ruby 使用不易受到 Heartbleed 攻击的 OpenSSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com