The OpenNET Project / Index page

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



"Oracle планирует убрать из Java встроенную поддержку сериали..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от opennews on 27-Май-18, 08:46 
Марк Реинхольд (Mark Reinhold (https://mreinhold.org/)), главный архитектор платформы Java, считает (https://www.infoworld.com/article/3275924/java/oracle-plans-...), что добавление в 1997 году в язык Java поддержки сериализации объектов было ужасной ошибкой, которую приходится расхлёбывать в виде всё вновь и вновь всплывающих критических уязвимостей (https://www.opennet.dev/opennews/art.shtml?num=47139) в различных продуктах на Java. По мнению Реинхольда от трети до половины всех уязвимостей в Java-проектах связаны с сериализацией, которая в силу простоты применения для решения многих задач провоцирует разработчиков на необдуманное использование.


Из соображений безопасности в долгосрочной перспективе Oracle планирует прекратить встроенную поддержку сериализации (кодирование объектов в последовательность байт для их сохранения или передачи), предложив в качестве замены компактный фреймворк. Во фреймворке будет обеспечена возможность безопасной сериализации Java-версии классов данных и графов записей, с возможностью манипуляции сериализированными данными в форматах JSON и XML. План будет реализован в рамках проекта Amber (http://openjdk.java.net/projects/amber/), сфокусированного на продвижении новых возможностей языка.

URL: https://www.infoworld.com/article/3275924/java/oracle-plans-...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48666

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Oracle планирует убрать из Java встроенную поддержку сериали..."  –1 +/
Сообщение от Вареник on 27-Май-18, 08:46 
Решились, наконец.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +15 +/
Сообщение от Аноним (??) on 27-Май-18, 09:03 
Нужны более радикальные меры:

"Oracle планирует убрать из Java встроенную поддержку Java"

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +6 +/
Сообщение от Когда завезут поддержку GTA 5 on 27-Май-18, 09:19 
У них, кстати, серьезные конкуренты. Вон, гному целый миллион подогнать хотят. Уж сколько они повыпиливают за эти деньги...
Хорошей дорогой идём, товарищи.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

23. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +8 +/
Сообщение от DerRoteBaron on 27-Май-18, 13:49 
Надеюсь, первыми они выпилят экстеншены, так, чтобы ни люди ни Canonical не смогли использовать гном.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

53. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от X4asd (ok) on 29-Май-18, 18:41 
> "Oracle планирует убрать из Java встроенную поддержку Java"

я тоже сначала так и прочитал -- и ппц обрадовался же! :-)

а когда посмотрел повнимательнее увидил сирилизацию

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +23 +/
Сообщение от A.Stahl (ok) on 27-Май-18, 09:44 
>Oracle планирует прекратить встроенную поддержку сериализации, предложив в качестве замены защищённый компактный фреймворк.

А что мешает встроенную реализацию сделать компактной и защищённой? Как по мне это просто перекладывание ответственности в стиле маркетологов: ошибки останутся, но теперь они формально будут не в Ява, а в каком-то там отдельном фреймворке.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +2 +/
Сообщение от Аноним (??) on 27-Май-18, 10:00 
У встроенной стандартизированные формат и поведение
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +3 +/
Сообщение от A.Stahl (ok) on 27-Май-18, 10:20 
Это не проблема: вводится новый формат, старый объявляется deprecated и через несколько версий выбрасывается. Стандартная практика.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 10:22 
Если чуточку внести изменения в этот план, то получится EEE - https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +5 +/
Сообщение от Аноним (??) on 27-Май-18, 10:40 
Оракл расширит и поглатит свою же джаву?
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

21. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +4 +/
Сообщение от IRASoldier on 27-Май-18, 13:37 
Диванным конспирологам настоятельно рекомендуется - покурить матчасть (если асилят):

Тед Ньювард - "Пять вещей, которые вы не знали о... сериализации Java-объектов. Вы думали, что сериализованные данные в безопасности? Подумайте еще раз."
https://www.ibm.com/developerworks/ru/library/j-5things1/ind...

Еще в 2011 написано.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

8. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +3 +/
Сообщение от Аноним (??) on 27-Май-18, 10:28 
Необходимость поддержки обратной совместимости.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от A.Stahl (ok) on 27-Май-18, 10:38 
А выбрасывание функциональности и перенос её во внешние фреймворки да ещё и с изменением формата не нарушает обратную совместимость?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 10:48 
Нарушает, но ты то предлогаешь изменить поведение стандартных классов и методов.
А как определять какой из них как работает? По System.getProperty("java.version") или как?
Обновили на компьютере ждаву, программа загружает уже сохраненные данные с диска, а там внезапно формат другой, и что будет?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

16. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от d (??) on 27-Май-18, 11:05 
implements SerializableNew
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

17. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 11:10 
Мы разработаваем новый легковесный фреймворк для сериализации. Проект называется Amber, а маркерным интерфейсом для него будет SerializableNew
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

28. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Аноним (??) on 27-Май-18, 16:41 
class MyClass implements Serializable2 {
  static final long serialVersionUID2 = 1L;
}
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

25. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Аноним (??) on 27-Май-18, 15:18 
Сохранить безопасный функционал, а опасный явно пометить как таковой, отключить по умолчанию, и предоставлять только для старого байткода или при установке флага.

Можно подумать, что большинство фреймворков сериализации безопасны! Parcelable в Андроиде был создан чтобы повысить производительность сериализации, но в плане выполнения произвольного кода наступил на те же грабли. А загрузка левых классов по сети это вообще классическая проблема eval() — при чём здесь сериализация, если RMI, или что там ещё, написано через ж**у? Если создатели языка не в состоянии исправить свой функционал, пользователи будут использовать сторонние либы, которые в итоге наступят на те же грабли.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 11:05 
Скорее всего его не выкинут из jvm вообще. Для программ использующих старый api будет доступна сериализация, а новый нет.
Собственно вот и решение, пиши на Java 8-10 и не ной.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от kk (??) on 27-Май-18, 10:50 
Так этож оракл, они сделают этот отдельный фреймворк платным и по подписке
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

30. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от KonstantinB (ok) on 27-Май-18, 19:19 
Универсальная сериализация по определению не может быть защищенной.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

41. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 09:57 
Это еще почему?
Вы все Rest api на базе JSON уже взломали?
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

14. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +3 +/
Сообщение от Аноним (??) on 27-Май-18, 10:57 
Без удаления не щмогли исправить....
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 11:26 
Кто может гарантировать, что люди, написавшие ранее кривой код как часть жабы, теперь напишут ровный код уже как фреймворк?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Аноним (??) on 27-Май-18, 12:57 
В новости речь о кривом коде как части приложений. Он кривой, потому что неправильно использует определённую функциональность жабы, которую планируют убрать, чтобы больше не провоцировать разработчиков кривых приложений.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

36. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от obamma on 28-Май-18, 00:35 
дух времени: хотим искоренить убийства - уничтожим все ножи!
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

42. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Аноним (??) on 28-Май-18, 09:59 
> дух времени: хотим искоренить убийства - уничтожим все ножи!

На майских праздниках двоих по пьянке забили насмерть табуреткой.
Табуретки искореним тоже?

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

22. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +6 +/
Сообщение от Аноним (??) on 27-Май-18, 13:44 
> которая в силу простоты применения для решения многих задач провоцирует разработчиков на необдуманное использование.

Т.е. новый фреймворк будет труден в использовании и разработчики вдруг начнут думать?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Oracle планирует убрать из Java встроенную поддержку сериали..."  –3 +/
Сообщение от Crazy Alex (ok) on 27-Май-18, 15:05 
Так вся жаба об ограничении возможностей, так и создавалась
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 15:31 
а чё сегодня 1-е апреля?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Аноним (??) on 27-Май-18, 16:40 
> которая в силу простоты применения для решения многих задач провоцирует разработчиков на необдуманное использование.

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

А как они собираются сериализовать графы с циклами в JSON и какая чудесная будет производительность - ещё предстоит посмеяться.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

34. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 27-Май-18, 23:00 
Нет в этой фиче нифига важного. Вопрос в том, насколько они поломают обратную совместимость. А насчет графов Serializable тоже нифига предложить не может (т.е. зацикливание будет).
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

40. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от max (??) on 28-Май-18, 09:08 
С графами объектов стандартный механизм сериализации в java без проблем работает. Лишь бы хрень какую-нибудь написать.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

49. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 17:15 
Если граф с циклами, будет циклить. Граф != дерево.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

48. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 16:47 
JSON прекрасно поддерживает циклические связи (введением внутреннего ID). Мне другое интересно: как вообще посторонняя функциональность может быть "небезопасной для языка"? Хоть бы одну "уязвимость" написали! Тот же JSON - он существует. И работает. И ни одного репорта "это опасно!". В чём соль??
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

39. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 08:45 
Тут про эти ваши безопасные сериализаторы xml и json  https://www.github.com/mbechler/marshalsec/blob/master/marsh...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 10:12 
> Тут про эти ваши безопасные сериализаторы xml и json  https://www.github.com/mbechler/marshalsec/blob/master/marsh...
>json

Жусон* то причем? В жусоне ПРИНИПИАЛЬНО нет встроенной  возможности задания исполняемого кода, там только строки, массивы, числа, да объекты(хеш-таблицы).
Другое дело если туповатый десериализатор начинает интерпретировать вышеперечисленное как исполняемых код.
Например в Java, где при десериализации хештаблицы вызывается метод hash() пользовательских объектов, где может быть произвольный код.


(да, по мнению изобретателя JSON - Д. Крокфорда, название формата произносится именно так)


Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

46. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от J.L. on 28-Май-18, 14:14 
> Например в Java, где при десериализации хештаблицы вызывается метод hash() пользовательских
> объектов, где может быть произвольный код.

тоесть java десерилизует функции экземпляра объекта не на основе кода класса из заголовка потока, а на основе байткода функции из потока ??

//offtop
> (да, по мнению изобретателя JSON - Д. Крокфорда, название формата произносится именно так)

"Жусон" - жесть то какая...

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

50. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +1 +/
Сообщение от Илья (??) on 29-Май-18, 09:25 
Ты можешь сериализовать любую имплементацию интерфейса. Система, на которой производится десериализация, может вообще не знать ничего об этой имплементации. По сути, сериализованный объект - это данные плюс поведение. Если нужны только данные, то есть "универсальные конвертеры" в JSON, XML и любые другие форматы. Если же нужно принимать именно реализацию - то обычно пользуются стандартной сериализацией. Это удобно. Но нужно понимать, что либо ты организовываешь безопасность получения этого кода, гарантируя, что посторонний код не может быть загружен. Либо обвешиваешься политиками безопасности.
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

51. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от VladSh on 29-Май-18, 12:25 
А ЭЦП никак сюда не прикрутить?
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

54. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Дмитрий Быстров email on 30-Май-18, 13:24 
Вы неправы!

Вы не можете сериализовать интерфейс. Сериализуется объект, реализующий интерфейс. В поток записывается полное название класса этого объекта и данные полей. Если поле - это ссылка на другой объект, то описанная процедура выполняется и для него. Если поле ссылается на уже записанный в поток объект (циклическая ссылка), то пишется информация об этом.

При десериализции объекты восстанавливаются по полному названию классов. При этом классы эти могут быть совершенно другими (с другим набором методов и даже с реализацией совершенно других интерфейсов).

Таки образом, поведение не сериализуется! Проверено на практике

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

56. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Дмитрий Быстров email on 30-Май-18, 13:34 
> Например в Java, где при десериализации хештаблицы вызывается метод hash() пользовательских
> объектов, где может быть произвольный код.

В этом виновата не стандартная сериализация, а реализация класса HashMap. Там есть метод readObject, котором написана своя процедура десериализации, точно некоторые действия после стандартной десериализации

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

45. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 28-Май-18, 13:14 
Я правильно понимаю, что все приложения под старыми версиями явы как работали, так и будут работать дальше, а вот при переходе на новые версии явы разработчики должны будут не забыть озаботиться заменой сериализации?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от J.L. on 28-Май-18, 14:15 
> Я правильно понимаю, что все приложения под старыми версиями явы как работали,
> так и будут работать дальше, а вот при переходе на новые
> версии явы разработчики должны будут не забыть озаботиться заменой сериализации?

95% что да
вероятно в жавамашине будет "если версия скомпиленного байткода > N - запрещай старое

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

52. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от dq0s4y71 (ok) on 29-Май-18, 12:25 
Хаха. Ничего "безопаснее", чем

fopen();
fwrite();
fclose();

так и не смогли придумать ;)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

55. "Oracle планирует убрать из Java встроенную поддержку сериали..."  +/
Сообщение от Аноним (??) on 30-Май-18, 13:28 
Короче мы облажались и ничего поправить немОгем.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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