Языки программирования

Выпущен Apache Struts 7 с усиленной системой безопасности

Выпущен Apache Struts 7 с усиленной системой безопасности

Выпущен Apache Struts 7. В этой версии добавлена поддержка JEE 9+, а также реализованы более строгие настройки безопасности.

Apache Struts - это бесплатный расширяемый фреймворк с открытым исходным кодом для создания корпоративных веб-приложений на Java. Фреймворк был разработан для оптимизации полного цикла разработки, от создания, развертывания и поддержки приложений в течение долгого времени. Фреймворк популярен на крупных предприятиях и в государственных учреждениях.

Struts предназначен для помощи разработчикам в создании веб-приложений, использующих архитектуру Model-View-Controller (MVC). Модель представляет собой бизнес-код или код базы данных, представление - код дизайна страницы, а контроллер - навигационный код. Фреймворк Struts. Фреймворк содержит три ключевых компонента: обработчик «запроса», предоставляемый разработчиком приложения, который сопоставляется со стандартным URI; обработчик «ответа», передающий управление другому ресурсу, который завершает ответ; и библиотеку тегов, которая помогает разработчикам создавать интерактивные приложения на основе форм с серверными страницами. Struts хорошо работает как с обычными REST-приложениями, так и с такими технологиями, как SOAP и AJAX.

Разработчики утверждают, что в отличие от других компонентно-ориентированных фреймворков, они не стремятся скрыть безстатическую природу веба. Напротив, они считают вполне приемлемым строить приложения на основе цикла «запрос/ответ». Они также защищают паттерн MVC, говоря, что то, что он устарел, не делает его плохим. Однако они признают, что разработчики, желающие создавать компоненты на стороне сервера, которые отображаются на стороне фронт-энда, скорее всего, ошибаются с Struts, и вместо него лучше выбрать такие проекты, как Wicket и Tapestry, которые отлично справляются с этой задачей.

В этом выпуске внесены изменения, призванные сделать поведение фреймворка Struts по умолчанию более предсказуемым и/или более безопасным. По словам разработчиков, многие из этих мер были разработаны в ответ на реальные эксплойты и распространенные критические ошибки разработчиков.

Первое улучшение заключается в том, что значения по умолчанию для различных опций сопоставления пространств имен были изменены на более разумное поведение, требующее точного совпадения. Это предотвращает доступ к действиям из большего числа пространств имен, чем предполагалось.

Доступ к статическим полям был запрещен, поскольку они могли быть любого типа с произвольными вложенными методами. Также теперь ограничена возможность инстанцирования произвольных классов map непосредственно из выражений OGNL, поскольку это может быть использовано для создания полезных нагрузок эксплойтов. Доступ к проксированным объектам в OGNL также был ограничен, чтобы предотвратить его использование в эксплойтах для инъекции шаблонов.

Инъекция параметров действия была ужесточена, теперь все точки инъекции параметров должны быть явно отмечены новой аннотацией @StrutsParameter.

Struts 7 доступен уже сейчас.

Читайте также