当前位置: 首页 > 知识库问答 >
问题:

spring boot使用的是什么版本的Jackson?

韦宏扬
2023-03-14

我正在努力确保以安全的方式使用spring boot和Jackson。Jackson的某些版本中存在反序列化错误(来源:https://github.com/FasterXML/jackson-databind/issues/1599)。

默认情况下,Spring Security不会使用Jackson执行反序列化,因此这是用户的明确选择(来源:https://pivotal.io/security/cve-2017-4995)。

如果Jackson被用于执行反序列化,版本2.7, 2.8, 2.8.9和2.7.9.1以及2.9.0.pr3都会被修补(来源:参见https://github.com/FasterXML/jackson-databind/issues/15994月13日Cowtown coder的评论)并且不容易受到错误的影响。

那么,使用spring、spring boot或spring Security中的Jackson版本执行反序列化安全吗?

共有1个答案

丁振海
2023-03-14

SpringBoot的每个版本都使用了一个易受攻击的Jackson API版本,因为实际上没有一个版本至少部分不可接受攻击。如果允许将不受信任的数据和第三方数据反序列化为通用集合(Map),则可能会发生这种情况

如果您要访问外部restful api,那么您必须实现自己的类型。如果您使用的是RestTemboard,则必须在其使用的对象映射器上手动设置。

仅供参考:SpringBoot还使用易受攻击的logback版本。只需将其显式地包含在您的构建中,即可更新到最新版本。

 类似资料:
  • 问题内容: 是否有比下面的函数(从此处获取)更好的方法来设计JavaScript ? 这不是JavaScript中Sleep的重复-动作之间的延迟 ; 我希望在函数中间真正入睡,而不是在执行一段代码之前没有延迟。 问题答案: 2017年— 2019年更新 自2009年提出这个问题以来,JavaScript取得了长足的发展。现在,所有其他答案都已过时或过于复杂。这是当前的最佳做法: 就是这个。。 还

  • 我们被要求通过HTTPS(TLS 1.2)调用具有BASIC AUTHENTICATION的特定Rest服务。我使用Spring restTemboard调用此服务。 如果它小于TLSv1.2,我可以使用HTTP客户端强制执行1.2。但我如何检查什么TLS版本正在使用restTemboard?

  • 问题内容: 刚开始使用C ++并尝试转换我最近编写的简单Java程序。 与C ++中的Java ArrayList等效的首选含义是什么? 问题答案: 使用标准库中的类。

  • 问题内容: 当我这样做时,我有一台Mac: 我有: 但是当我必须: 2.7.6在哪里?有什么建议我该怎么办? 更新: 在PyCharm编辑器中,默认设置解释器显示: 问题答案: 您的macOS上可能有多个Python版本。 您可以检查通过,或命令,如: 或输入在 终端 和命中为自动完成,这相当于几次: 默认情况下,/命令指向环境变量中第一个二进制文件,具体取决于实际安装的文件。因此,在使用Home

  • 问题内容: 我已经使用谷歌搜索了很久了,但是没有结果。该PyInstaller手册说: 听起来很棒。我想将版本信息放入可执行文件中。问题是我不知道“版本文件”的外观,也找不到我可以使用的单个示例。我认为将版本文件的示例作为对此问题的可接受答案。 我尝试过的 该手册还说: 仅Windows NT家族 版本 。版本=’myversion.txt’。使用GrabVersion.py从可执行文件中窃取版本

  • Composer 使用的 语义化版本 2.0.0 | Semantic Versioning.