如何确保Ruby使用OpenSSL不容易受到伤心?
遵循引人入胜的错误,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’将RbConfig :: CONFIG [“configure_args”]’应该告诉你Ruby将寻找各种可执行文件,包括OpenSSL>所有重要的是,OpenSSL在该位置的副本是最新的; cd在那里使用./openssl版本来找出来.> ruby?? -v -ropenssl -rfiddle -e’将Fiddle :: Function.new(Fiddle.dlopen(nil)[“SSLeay_version”],[Fiddle :: TYPE_INT],Fiddle :: TYPE_VOIDP).call(0)’应该给出与运行openssl版本直接相同的答案,因为它实际上要求Ruby使用的OpenSSL的副本来报告其版本号> OpenSSL :: OPENSSL_VERSION可能已过期;它报告编译时发现的版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |