Spring Framework

Продукт
Дата премьеры системы: 2002/10/01
Дата последнего релиза: 2022/04/01
Технологии: Средства разработки приложений

Содержание

The Spring Framework (или коротко Spring) — open source фреймворк для Java-платформы и .NET Framework (форк под названием Spring.NET).

MVC

Spring имеет собственную MVC-платформу веб-приложений. Spring MVC предоставляет разработчику следующие возможности (на март 2022 года):

  • Ясное и прозрачное разделение между слоями в MVC и запросах.
  • Стратегия интерфейсов — каждый интерфейс делает только свою часть работы.
  • Интерфейс всегда может быть заменен альтернативной реализацией.
  • Интерфейсы тесно связаны с Servlet API.
  • Высокий уровень абстракции для веб-приложений.
  • В веб-приложениях можно использовать различные части Spring, а не только Spring MVC.

2022: Обнаружение уязвимости нулевого дня

Центр мониторинга и реагирования UserGate сообщил 31 марта 2022 года, о уязвимости нулевого дня в библиотеке Spring, работающей на JDK, которая может нанести урон огромному количеству приложений. На конец марта 2022 года CVE ID еще не присвоен. Рабочее название уязвимости - SpringShell.

Уязвимость существует в ядре Spring на JDK версии 9.0 и выше.

В JDK версии 9.0 и выше атакующий может получить доступ к AccessLogValve и передать вредоносные значения поля через параметр связующей функции фреймворка, что приводит к исполнению произвольного кода на целевой системе.

На конец марта 2022 года известно, что для эксплуатации уязвимости необходимо два условия: использование Spring MVC framework и JDK версии 9.0 и выше.

Компания UserGate советует:

  • обновить компонент Spring Cloud Function до версий 3.1.7 и 3.2.3 соответственно;
  • проверить актуальность подписки на модуль Security Updates. При использовании профиля сигнатур UserGate, все новые сигнатуры начинают работать автоматически.

По информации «Ростелеком-Солар» на 8 апреля 2022 года, критической уязвимости CVE-2022-22965 по CVSS была присвоена оценка опасности 9.8/10 баллов. Она была исправлена в версиях Spring Framework 5.3.18 и 5.2.20.

Уязвимость была выявлена в модуле Spring Core и позволяла привязывать данные в http-запросе к полям объектов приложения. Баг содержался в реализации метода getCachedIntrospectionResults, который может быть использован для несанкционированного доступа к этим объектам при передаче данных имен классов этих объектов через указанный HTTP-запрос.

Уязвимость присутствует в приложениях Spring MVC и Spring WebFlux, работающих под Java Development Kit (версии 9+), эксплуатация которых может привести к компрометации огромного количества серверов. Наиболее высокой угрозе подвержены корпоративные Java-приложения на базе Spring Framework с правами root, так как уязвимость в них позволяет скомпрометировать всю систему.

2010

Текущая версия Spring (на сентябрь 2010 года) - 3.0.3.

Несмотря на то, что Spring Framework не обеспечивал какую-либо конкретную модель программирования, он стал широко распространённым в Java-сообществе главным образом как альтернатива и замена модели Enterprise JavaBeans. Spring Framework предоставляет бо́льшую свободу Java-разработчикам в проектировании, кроме того, он предоставляет хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений промышленного масштаба.

Между тем, особенности ядра Spring Framework применимы в любом Java-приложении, и существует множество расширений и усовершенствований для построения веб-приложений на Java Enterprise платформе. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк.

2004-2005: Стабильные релизы

Первый стабильный релиз 1.0 был выпущен в марте 2004. Последующие стабильные релизы вышли в сентябре 2004 года и марте 2005 года.

2003: Выпуск под лицензией Apache 2.0

Фреймворк был впервые выпущен под лицензией Apache 2.0 license в июне 2003 года.

2002: Первая версия

Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development» (Wrox Press, октябрь 2002 года).





Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Microsoft (41, 47)
  Солар (ранее Ростелеком-Солар) (2, 46)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (553, 270)

Распределение базовых систем по количеству проектов, включая партнерские решения (проекты, партнерские проекты)

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Solar appScreener (ранее Solar inCode) - 8 (8, 0)
  FIS Platform - 4 (4, 0)
  Siemens Xcelerator - 2 (2, 0)
  Парадокс: MES Builder - 2 (2, 0)
  Турбо X - 2 (2, 0)
  Другие 21