The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах

31.03.2022 10:06

В модуле Spring Core, поставляемом в составе фреймворка Spring Framework, выявлена критическая 0-day уязвимость, позволяющая неаутентифицированному удалённому атакующему выполнить свой код на сервере. Пока не ясно, насколько катастрофичными могут быть последствия выявленной проблемы, и будут ли атаки столь же массовыми, как в случае с уязвимостью в Log4j 2. Уязвимости присвоено кодовое имя Spring4Shell, но CVE-идентификатор пока не назначен. В Spring Framework проблема остаётся неисправленной и в сети уже доступно несколько рабочих прототипов эксплоитов (1, 2, 3, 4). Проблему усугубляет то, что многие корпоративные Java-приложения на базе Spring Framework выполняются с правами root и уязвимость позволяет полностью скомпрометировать систему.

По некоторым оценкам модуль Spring Core используется в 74% Java-приложений. Опасность уязвимости снижает то, что атаке подвержены только приложения, использующие при подключении обработчиков запросов аннотацию "@RequestMapping" и применяющие привязку параметров web-форм в формате "name=value" (POJO, Plain Old Java Object), вместо JSON/XML. Какие именно Java-приложения и фреймворки подвержены проблеме ещё не ясно.

Эксплуатация уязвимости возможна только при использовании Java/JDK 9 или более новой версии. Уязвимость блокирует добавление в чёрный список полей "class", "module" и "classLoader" или использование явного белого списка разрешённых полей. Проблема вызвана возможностью обхода защиты от уязвимости CVE-2010-1622, исправленной в Spring Framework ещё в 2010 году и связанной с выполнением обработчика classLoader при разборе параметров запроса.

Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.context.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.


curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=код_для_вставки_в_файл
 &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
 &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
 &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
 &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" 
http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

Рассматриваемую проблему в Spring Core не стоит путать с выявленными на днях уязвимостями CVE-2022-22963 и CVE-2022-22950. Первая проблема затрагивают пакет Spring Cloud и также позволяет добиться удалённого выполнения кода (эксплоит). Уязвимость CVE-2022-22963 устранена в выпусках Spring Cloud 3.1.7 и 3.2.3. Вторая проблема CVE-2022-22950 присутствует в Spring Expression, может использоваться для совершения DoS-атак и исправлена во Spring Framework 5.3.17. Это принципиально другие уязвимости. Про новую уязвимость разработчики Spring Framework ещё не сделали никаких заявлений и не опубликовали исправление.

В качестве временной меры для защиты рекомендуется использовать в коде чёрный список недопустимых параметров запроса:


   import org.springframework.core.Ordered;
   import org.springframework.core.annotation.Order;
   import org.springframework.web.bind.WebDataBinder;
   import org.springframework.web.bind.annotation.ControllerAdvice;
   import org.springframework.web.bind.annotation.InitBinder;

   @ControllerAdvice
   @Order(10000)
   public class BinderControllerAdvice {
      @InitBinder
      public void setAllowedFields(WebDataBinder dataBinder) {

          String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};

          dataBinder.setDisallowedFields(denylist);
      }
   }

Дополнение: Уязвимости назначен идентификатор CVE-2022-22965 и выпущены обновления Spring Framework 5.3.18 и 5.2.20 с устранением уязвимости.

  1. Главная ссылка к новости (https://www.lunasec.io/docs/bl...)
  2. OpenNews: Критическая уязвимость в Apache Log4j 2, затрагивающая многие Java-проекты
  3. OpenNews: 17 проектов Apache оказались затронуты уязвимостью в Log4j 2
  4. OpenNews: Обновление Log4j 2.17.1 с устранением ещё одной уязвимости
  5. OpenNews: Новый вариант атаки на Log4j 2, позволяющий обойти добавленную защиту
  6. OpenNews: Третья уязвимость в Log4j 2. Проблемы в Log4j затрагивают 8% Maven-пакетов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56941-java
Ключевые слова: java, spring
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (90) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:22, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Жаба как обычно, самая безопасная. Банально из-за сложности и многослойных нагромождений легаси.
     
     
  • 2.4, А (??), 10:42, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Неа.

    > многие корпоративные Java-приложения на базе Spring Framework выполняются с правами root и уязвимость позволяет

    Дело в попытке быстро получить бизнес результат. Поэтому халтурят во все лопатки. И таки - да, оно в контейнерах под рутом, и без контейнером под рутом. Так руководство топит за скорость.

     
     
  • 3.6, пох. (?), 10:56, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Как будто "не под рутом" что-то изменило бы. У жабаприложения и так есть доступ ко всему, что вообще представляет хоть какую-то ценность. Причем обычно это ВСЬО значительно больше и дальше чем никому ненужный контейнер в контейнере в контейнере, хоть ты там будь рутом, хоть Г-дом Б-гом, все равно от юзера nobody (от которого, допустим на минуточку, выполняется весь твой из себя такой сесюрный жабокод из этого контейнера) есть доступ к хранилищу документов, базам, сервисным системам и так далее - иначе бы этот жабокот в сферическом вакууме никому нужен и не был.

    Не в ту сторону воюете, ик-сперды по безопастносте.

     
     
  • 4.9, А (??), 11:02, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Речь про отношение людей к теме.

    Это может и да, если всё в целом. А про рута история про снижение скорости развития вектора атаки, про уменьшение возможностей. И что это не делают сознательно.

     
     
  • 5.25, пох. (?), 12:55, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну потому что правда ни от чего не поможет и только займет лишнее время.
    Обычно не от рута имеет смысл не ради этого а ради того что от рута у нас все еще вообще не все идеально работает - юникс-шмуникс какой-то, что-ли там был - некоторый софт все еще на полном серьезе рассчитывает, к примеру, что файл с правами 200 нельзя прочитать - и вместо ошибки доступа  получает полузаписавшиеся данные.

    Но это ж надо хотя бы суметь юзера внутри контейнера поменять.

     
     
  • 6.55, A (?), 14:55, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А уметь-то умеют. Только это ж работу работать надо. А на улице - весна.
     
     
  • 7.64, пох. (?), 16:24, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не умеют. В гугле искать умеют - но это ж искать надо, а там спринт не ждет!
    На улице ночь полярная, я только что в окно выглядывал.

     
     
  • 8.65, пох. (?), 16:28, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ой, извини сглазил Нашли они в гугле, пока я тебе предыдущее писал как ... текст свёрнут, показать
     
  • 3.17, Аноним (17), 11:58, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Получил root контейнера, а дальше с ним со делать?
    В контейнере кроме jvm  и приложения ничего нет.
     
     
  • 4.18, А (??), 12:02, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Там всякие капабилити включены, конт. привилегированный и прочие лёгкие способы достижения целей. Такая себе помойка.
     
     
  • 5.20, А (??), 12:05, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Даже встречал как за своё выдают основную и первую идею контейнеризации и изоляции - типа собственного изобретения "новый", свой!, способ применения для безопасности. Настолько много тех, кому неизвестно для чего всё было придумано. Настолько неиспользуется.
     
  • 4.26, YetAnotherOnanym (ok), 12:58, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > В контейнере кроме jvm  и приложения ничего нет.

    А в конфиге приложения - всё, что нужно для доступа к БД, с которой это приложение работает.

     
     
  • 5.42, твой начальник (?), 14:15, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому я решил что конфиги - г-но, немедля поперекодить все так чтоб все сикретные данные были в сикретных местах в самом коде. И чтоб никто не мог их потом найти!

     
     
  • 6.49, YetAnotherOnanym (ok), 14:34, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Пральна, и каждый день выпускать апдейт, в котором всё будет в новых местах, чтобы хакеры не успевали узнать где и что спрятано.
     
     
  • 7.66, пох. (?), 16:29, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но пароли будут всегда старые, потому что не все те места удается найти и поменять.

    Причем, разумеется, это пароль 123.

     
  • 5.67, Аноним (67), 16:42, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    так это же не зависит от того root там или не root. Всё самое ценное будет доступно независимо от того  под каким пользователем java запущено.
     
     
  • 6.71, пох. (?), 17:27, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > так это же не зависит от того root там или не root.
    > Всё самое ценное будет доступно независимо от того  под каким
    > пользователем java запущено.

    дык. Эспертам опеннета это понимание чуждо.
    Другой вопрос, правда, в том, что через какой-нибудь чатик сделанный индусским аутсорсером на от...сь и без поддержки потому что всего лишь чяаааатик - могут поломать инфраструктуру, потому что все контейнеры крутятся на одних и тех же серверах и иногда, уп-с, протекают.

    Но поможет ли от этого не-рут - в общем-то не факт. Например, предыдущие протечки позволяли запустить от нерута контейнер внутри контейнера - ой, с рутом. Который незамысловатыми телодвижениями внезапно становился системным рутом - с доступом ко всем контейнерам разом.


     
  • 3.41, Брат Анон (ok), 14:13, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Т.е. фактически вы своим постом подтвердили, что жаба тотальный легаси. Дело было только за желающим это легаси пошатать.
     
  • 2.27, Аноним (27), 12:59, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Стандартная история с рефлексией-десериазилацией. Такое безопасно делать только по белым спискам. В любом, внезапно, языке, где есть что-то похожее. Это очень, кстати, похоже на старую уязвимость в Drupal - с именем функции-коллбэка в пейлоаде.

    Короче, в сотый раз те же грабли.

     

  • 1.2, name (??), 10:35, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо г-споди, что я с этим больше не работаю.
     
     
  • 2.5, vellkira (?), 10:48, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А с чем работаете?
     
     
  • 3.14, Аноним (14), 11:38, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не с этим
     
  • 3.31, Аноним (31), 13:13, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +8 +/
    С лопатой на стройке
     

  • 1.8, Анонимыч (?), 11:02, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    не воспроизвелось. Так херово работает все, что даже эксплойты не работают
     
  • 1.10, YetAnotherOnanym (ok), 11:06, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Но ведь даже без учёта уязвимостей - жаба тормозная и жручая. Кто в здравом уме будет будет её использовать?
     
     
  • 2.12, Аноним (12), 11:16, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Производители железа одобряют
     
  • 2.15, Аноним (15), 11:39, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    зайдите на хх.ру да спросите у всех тамошних работодателей из сферы ИТ
     
     
  • 3.91, Аноним (91), 00:00, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас в результате февральских событий есть подозрение, что все это последие 30 лет были подсадные вакансии в подсадных проектах с нулевым результатом.
     
  • 2.16, А (??), 11:39, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А она настолько была прогрессивнее Сей, что профит от того поборол.

    Как написано - столько и жрёт. Кто хорошо пишет, тот тоже будет использовать.

     
     
  • 3.92, Аноним (91), 00:02, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Дак класс RC счетчика (а смарт поинтеры в плюсах уже из коробки) в сях можно написать за час рабочего времени

    В чем преимущество сегодня тогда в этих ваших джавах?

     
     
  • 4.98, Z (??), 02:31, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В чем преимущество сегодня тогда в этих ваших джавах?

    В синтаксисе. Язык идеален для ОЧЕНЬ больших проектов, и наоборот, совершенно не расчитан для одностраничных хеллоуворлдов. Про тормознутость тоже улыбнуло, ведь джава всего в полтора раза медленнее Си, в то время, как богомерзкий питон в десятки раз медленнее.

     
  • 2.19, Аноним (19), 12:04, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > тормозная и жручая

    Насчет жручести - может быть и правда, но тормоза - чистой воды фантастика. В яве тормозили только т.н. "ява-аплеты" (были популярны до того, как ты родился) и свинг. А серверная ява довольно шустра и всего в полтора раза медленнее плюсов (всякие пихтоны и пыхи -- на порядки порядков порядков медленнее плюсов). Любой, находящийся в здравом уме, предпочтет использовать уже состоявшуюся Платформу со стандартами на все случаи жизни вместо того, чтобы изобретать квадратное колесо в пихтонах/пыхах. Таких платформ сейчас всего две - сишарп и ява. Сишарп отбросим за его проприетарность. Остается только ява.

    Но на пихтонах/пыхах все еще можно клепать гостевухи -- там, где производительность не важна. Эта гостевуха блестяще справится с двумя-тремя пользователями в месяц.

     
     
  • 3.22, Аноним (22), 12:39, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но на пихтонах/пыхах все еще можно клепать гостевухи -- там, где производительность не важна. Эта гостевуха блестяще справится с двумя-тремя пользователями в месяц.

    3000 одновременно залогиненых пользователей, каждый - на подсосе минимум одного вебсоскета. И всё это держит один пихтон-контейнер, ибо больше и не надо. Просто справляется и всё.
    Я сам не фанат пихтонов, пыхов и прочих жабогадюк, но попросил бы тебя не болтать ерундой при людях.

     
     
  • 4.38, server_push (?), 14:05, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > 3000 одновременно залогиненых пользователей, каждый - на подсосе минимум одного вебсоскета

    Целых 3 тысячи! При том что стек который это держит скорее всего чуть более, чем полностью сишный
    По секрету скажу что любой асинхронный jvm фреймворк у которого на github хотя бы 100 звездочек будет держать и 100к websocket

    А те кто тюнит джаву получал 12 млн еще в 2013 году

    https://migratorydata.com/blog/migratorydata-with-12-million-concurrent-websoc

     
  • 4.62, Анонимыч (?), 16:04, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    64к коннектов одновременно обрабатывали на нескольких томкатах, которые на одной тачке стояли. Обрабатывали бы и сильно больше, но обычно необходимости не было, поэтому роутер никто не менял.

    Еще помню, заказчик часть сервисов отдал пихтонистам и пыхыпешникам - те даже запросы подписывать и расшифровывать не умели, приходилось за них все делать.

     
  • 4.63, Анонимыч (?), 16:10, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    а сессий десятки - сотни тысяч были и все летало на "тормозной" джаве. Надо просто писать нормально, тогда и лагать ничего не будет и ресурсов будет хватать на все.

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

     
  • 3.24, YetAnotherOnanym (ok), 12:53, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > серверная ява довольно шустра

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

     
     
  • 4.28, пох. (?), 13:01, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    это просто у тебя код г-но Вот как надо правильно дорогая техподдержка - а че... большой текст свёрнут, показать
     
     
  • 5.30, YetAnotherOnanym (ok), 13:06, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, LA за сотню, и когда очередь дойдёт до оом киллера - еще неизвестно ))
     
  • 4.32, Аноним (19), 13:20, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > свои структуры данных как проинициализируем, да кэши как прогреем

    на яве пишут долгоиграющие приложения. То, что он будет раз в месяц запускаться секунд 10 - не важно, это же твой IИDEX.рнр, запускающийся с полного нуля при каждом запросе.

    > всю память в системе отхаваем

    не позорься, погугли про Xmx/Xms и возвращайся править IИDEX.рнр (напрямую через FTP естессно, и не забудь в битриксе активировать режим проактивной защиты).

     
     
  • 5.35, YetAnotherOnanym (ok), 13:51, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Вообще-то, кроме жабы на белом свете существуют не только php и python. Ну да ладно, не буду тебя грузить ненужностями.
     
     
  • 6.36, Аноним (19), 13:58, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для корпоративных приложений кроме явы есть только сишарп, period. А так да, для твоих хелловорлдов и HQ9+ сойдет.
     
     
  • 7.39, YetAnotherOnanym (ok), 14:08, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну да, ну да...
     
  • 3.37, YetAnotherOnanym (ok), 14:04, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Остается только ява

    Да есть, вообще-то, на белом свете один ЯП, специально созданный для написания неубиваемого ПО, главным образом серверного, разрабы которого в своё время на вопрос "как ваш язык справляется с проблемой 10к соединений" удивлённо ответили "а разве 10к соединений - это проблема?", но ты не обращай внимания, забей, правило "меньше знаешь - крепче спишь" никто не отменял.

     
     
  • 4.43, Аноним (19), 14:17, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    но ты про этот язык никому не расскажешь, верно? А если и расскажешь, то выяснится, что "серверное ПО" и "корпоративное ПО" - это, мягко говоря, разные вещи, и требования к ним существенно отличаются.
     
     
  • 5.45, YetAnotherOnanym (ok), 14:21, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно нет, зачем людей смущать? Вон как они бодро плюсуют свои каменты, в их мире всё стройно, гармонично и однозначно, зачем им его ломать?
     
     
  • 6.47, Аноним (19), 14:30, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну тогда продолжай пребывать в воображаемом мирке, где изобрели серебряную пулю "убийцу явы, сишарпа, сишки, неба, и вообще всего"
     
  • 4.82, Аноним (82), 11:18, 01/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Имя, брат, имя! Неужели эрланг богомерз... богоподобный или эликсир, на нем настоянный?
     
     
  • 5.84, YetAnotherOnanym (ok), 23:41, 01/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу, обещал не говорить. Но вобщем - те же яблоки, только в профиль.
     

  • 1.13, Аноним12345 (?), 11:26, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Бежать немедленно с этой жабы
     
     
  • 2.46, ms is a piece of s (?), 14:23, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дети всегда куда-то бегут.
    Откуда-то или куда-то, неважно, направление задают эксперты на опеннете.
     

  • 1.21, Смузихлёб (?), 12:06, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Жаба это давно уже легаси сводящееся к поддержке и допилу под нужды. Джуны нафиг не нужны, поэтому учить с нуля точно не стоит.
     
  • 1.23, Аноним (23), 12:49, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А к embedded tomcat не относится что-ли? Только если war-ник и на отдельном Tomcat сервере?
     
     
  • 2.83, An onymous (?), 21:03, 01/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    However, if Spring is deployed using the Embedded Tomcat Servlet Container the classloader is a LaunchedURLClassLoader which has limited access.
     

  • 1.29, WebBonobo (?), 13:01, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    кто из опытных ушел из джавы в Го, как оно?
     
     
  • 2.44, Брат Анон (ok), 14:18, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я пытался подучить жабу как-то.

    Что меня с первого же шага выбесило -- нужно пройти регистрацию чтобы скачать СДК.
    Потом начал писать код по метаниту. И когда понял, что жаба не поддерживает UTF-8 -- сказать что я немного прифигел -- ничего не сказать.
    Дальше началась песня с какими-то промежуточными файлами, какими-то мутными настройками, манифестами... Короче меня это задолбало и  бросил учить.
    Гошечка просто кратно проще и логичней.

     
     
  • 3.48, ms is a piece of s (?), 14:30, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Скорее всего разработка ПО это не твое.
    Уж жаба-то проще сей и крестов.
    Корпо-лопатный игого тоже не вариант, он за тебя качественный код не напишет.
     
     
  • 4.58, Брат Анон (ok), 15:18, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Скорее всего разработка ПО это не твое.

    Угу, наверное ты прав. Ответил главный эксперт блока по техническому развитию одной из госкорпораций.


     
     
  • 5.89, Аноним (89), 15:31, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Ответил главный эксперт блока по техническому развитию одной из госкорпораций

    какая госкорпорация, такие и главные эксперты

     
  • 3.54, A (?), 14:54, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да. Это трудная работа, писать код, в котором сложно отклониться от нужного. И инструмент давно уже вышел.

    Для Гошечки наработок мало. А под Жаву написано мириады уже делающего нужное кода.

    Гошечка смутила признаками сейчас недоделанности всех фич, которые задуманы вообще. Возможно.

     
  • 3.60, Джавистсанитар (?), 15:37, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Большей шизофазии ппро джаву почти не встречал
     
  • 3.69, Аноним (67), 16:54, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда java разрабатывалась utf-8 еще небыло. Для внутренних строк используется единственная кодировка UTF-16, наружу она всю жизнь могла сохранять в любой кодировки, какую укажешь. А не укажешь, сохранит в системной.
     
     
  • 4.86, Аноним (86), 17:41, 02/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    это не аргумент. питон например еще старше и прожувал эту проблему. utf16 скорее бы уже всем забыть
     
  • 4.88, Аноним (89), 15:28, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Когда java разрабатывалась utf-8 еще небыло

    Жабка вышла в 95-ом.
    utf-8 - в 1992-ом. А используемый жабкой utf-16 - в 96-ом.
    Но в целом, это религиозный вопрос что лучше иметь внутри: utf-8, или utf-16.

     
  • 3.76, eugener (ok), 22:12, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > жаба не поддерживает UTF-8

    Насколько нужно затупить чтобы такое написать?

     
     
  • 4.79, Брат Анон (ok), 09:09, 01/04/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> жаба не поддерживает UTF-8
    > Насколько нужно затупить чтобы такое написать?

    Нисколько. Все файлы сохранял в UTF-8 (кодировка по умолчанию), и компилятор не стал исходник кушать, пока принудительно не сохранил в CP-1251.

     
     
  • 5.80, eugener (ok), 09:25, 01/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нисколько. Все файлы сохранял в UTF-8 (кодировка по умолчанию), и компилятор не
    > стал исходник кушать, пока принудительно не сохранил в CP-1251.

    Походу в винде дело происходило? У Java в винде кодировка по умолчанию как раз 1251, потому что это кодировка по умолчанию в Windows.
    У компилятора есть опция для указания кодировки.

    Я уж подумал что вы имели в виду что "жаба не поддерживает UTF-8" вообще. Решил что вы начали работать в 1996-ом году с JDK 1.0, там действительно не было работы с кодировками. И тогда же сразу разочаровались, не дождавшись версии 1.1 от 1997-го. И тогда же перешли на Go.

     
     
  • 6.87, Брат Анон (ok), 14:40, 03/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Походу в винде дело происходило? У Java в винде кодировка по умолчанию
    > как раз 1251, потому что это кодировка по умолчанию в Windows.
    > У компилятора есть опция для указания кодировки.

    Почему-то компилятору golang, или pyhon -- никакие кодировки указывать не надо. Нигде. Совсем.
    Java точно нормальные люди разрабатывали? Однобайтовая кодировка по умолчанию -- это из какого пещерного века стандарт?

    > Я уж подумал что вы имели в виду что "жаба не поддерживает
    > UTF-8" вообще. Решил что вы начали работать в 1996-ом году с
    > JDK 1.0, там действительно не было работы с кодировками. И тогда
    > же сразу разочаровались, не дождавшись версии 1.1 от 1997-го. И тогда
    > же перешли на Go.

    Нет, разумеется. Go ещё и 20 лет нету.

     
  • 3.95, Z (??), 02:02, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема с УТФ-8 в консоли винды – бага самой винды, а не джавы. Проблема старая ещё с до-юникодовой эпохи. Решается флагом -encode utf8.
     
     
  • 4.99, Брат Анон (ok), 12:41, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Проблема с УТФ-8 в консоли винды – бага самой винды, а не
    > джавы. Проблема старая ещё с до-юникодовой эпохи. Решается флагом -encode utf8.

    Ещё раз внимательно читаем текст. При чём тут консоль? При чём тут венда? utf8 -- это дефолтная кодировка у меня в IDE. Где вы всю эту чушь берёте? В каком месте я написал про венду и консоль?

     
  • 2.50, ms is a piece of s (?), 14:34, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Игого корпо-лопатен на уровне генетики.
    Crystal прямой ему конкурент и заменитель.
     
  • 2.56, A (?), 15:01, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > кто из опытных ушел из джавы в Го, как оно?

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

    Мало наработок типа Спринга... :) Как появятся, так Гошечка тоже и ожиреет и притормозит.

    Позитив, что сырцы автоматически прикапываются в папочку на диске. И из той помойки можно в оффлайне собраться. Качество помойки не обязательно контролируется каким-либо автором. Но тут особой новизны нет. Всегда смотреть надо было.

     
  • 2.57, A (?), 15:01, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > кто из опытных ушел из джавы в Го, как оно?

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

    Мало наработок типа Спринга... :) Как появятся, так Гошечка тоже и ожиреет и притормозит.

    Позитив, что сырцы автоматически прикапываются в папочку на диске. И из той помойки можно в оффлайне собраться. Качество помойки не обязательно контролируется каким-либо автором. Но тут особой новизны нет. Всегда смотреть надо было.

     

  • 1.34, Аноним (34), 13:50, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проверил, на пашет если сервисы сделаны норм и разрешено только то, что разрешено, можно до усрачки создавать все, что угодно, доступа туда не будет. Но в целом прикольно.
     
  • 1.40, Funkey_33333 (?), 14:10, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Еда... Есть в конторе бизнесовое приложение. Дико важное бизнесу. Пилят типа "мидлы', обученные де то на супер-курсах и в ютюбах. У нас, у админов, которые занимаются внедрением всей этой дичи, и обеспечением cicd и отказоустойчивости её, раньше была "палка", чтобы бить по рукам тем деятелям... После жалоб бизнесу на то, что мы тормозим их супер эффективный АДжаил своими придирками, и что им, несчастным, приходится тратить свое драгоценное время не на сам супер проект, а на ненужное замыкание дыр, бизнес у нас, вместе с ИБ отобрал "палку"... Вот так оно и живёт... Пипец, в общем.
     
     
  • 2.96, Z (??), 02:11, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Бежать без оглядки надо из такой конторы. Работа должна приносить удовольствие, а потом уже деньги. Живём один раз, не хватало ещё мучать себя аджаилами.
     

  • 1.51, ms is a piece of s (?), 14:41, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Запускающим java приложения из под рута должны выдаваться трудовые книжки.
    Адекватный работодатель только так и должен поступать в своих же интересах.
     
     
  • 2.90, Фняк (?), 17:27, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Уязвимости класса privilege elevation находят довольно часто, про них часто в новостях даже не пишут
     
  • 2.97, Z (??), 02:13, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы из какого года вещание? Трудовые книжки сейчас остались лишь в госучреждениях, в остальных случаях это договор на минимальную по закону ЗП + "бонусы".
     

  • 1.52, Аноним (52), 14:47, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Эксплуатация уязвимости .. при .. Java/JDK 9 или более новой версии

    Любителям тащить в рот всё новое посвящается.

     
  • 1.59, IdeaFix (ok), 15:26, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А кто-то использует что-то новее JAVA8 для серьезных задач? Там где легаси и копро... корпоративщина - там Java8, лог4ж 1.х и полные лепота и благолепие.
     
     
  • 2.61, Stanislavvv (?), 15:47, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На уже предыдущей работе использовали java 11, что openjdk. Собирались java 13, но на момент увольнения проектов с 13 не было.
     
     
  • 3.70, Аноним (67), 16:57, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Собирались java 13

    А какой смысл использовать не LTS? У нее же срок поддержки пол года, пока что-то дельное напишешь уже поддержку прекратили.

     
  • 2.68, ms is a piece of s (?), 16:53, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    JDK 11 она LTS и много где давно уже используется.
    Через год можно будет уже 17 использовать на не сильно критичных задачах.
     
  • 2.73, лютый жабби__ (?), 18:10, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >кто-то использует что-то новее JAVA8 для серьезных задач

    почти все вакансии во всяких криптостартапах, яндексы, тупкофф и остальном подобном ) но если им сказать, что они дурачки, не поверят

     
     
  • 3.75, IdeaFix (ok), 21:48, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >>кто-то использует что-то новее JAVA8 для серьезных задач
    > почти все вакансии во всяких криптостартапах, яндексы, тупкофф и остальном подобном )
    > но если им сказать, что они дурачки, не поверят

    Поддерживаю несколько легаси проектов (моё легаси еще поддерживается разработчиком) на java8 и с любопытством смотрю на гитхабе.... в легаси версиях 100% новостей - бекпортирование фич, а в куррент версии на ява11 - сплошные цве. Вот тебе и копро-легаси.

     
     
  • 4.77, лютый жабби__ (?), 23:03, 31/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Поддерживаю несколько легаси проектов

    поискал бы нормальную работу )

    >а в куррент версии на ява11 - сплошные цве

    а я уже накатил 2.6.6 и забыл ) хотя у нас только один проект из кучи был "надо чтобы на томкэте разворачивалось в виде WAR", остальные unaffected

     
     
  • 5.85, IdeaFix (ok), 13:31, 02/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > поискал бы нормальную работу )

    Хз, мне нравится... к тому же, поддержка легаси - это скорее дополнительное на парт-тайм.

     

  • 1.72, Аноним (72), 17:30, 31/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Предложенное решение НЕ сработает!

    условие внутри матчера "patternMatchUtils" не выполнится "if (simpleMatch(pattern, str))" в следствии чего поля не будут удалены в методе "checkAllowedFields(MutablePropertyValues mpvs)" вызовом метода mpvs.removePropertyValue(pv); - класс DataBinder

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру