Дата премьеры системы: | 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 и передать вредоносные значения поля через параметр связующей функции фреймворка, что приводит к исполнению произвольного кода на целевой системе.Группа компаний «ВДГБ»: 28 лет успеха на рынке 1С
На конец марта 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 года).
Заказчик | Интегратор | Год | Проект |
---|---|---|---|
- Райффайзенбанк (Raiffeisen Bank) | Синимекс (Cinimex) | 2019.06 | ![]() |
- Сбербанк | Техно Диасофт, Axenix (ранее Аксенчер Россия) Аксеникс, Инфосистемы Джет | 2018.12 | ![]() |
- Теплосеть Санкт-Петербурга | Философия.ИТ | 2017.06 | ![]() |
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)