Компания считает добавление в Java поддержки сериализации «ужасной ошибкой».
Oracle намерена прекратить поддержку сериализации/десериализации данных в языке Java. Сериализация представляет собой процесс преобразования объекта в поток байтов для передачи по сети или сохранения в базе данных. Сохраненный объект затем снова преобразовывается в первоначальный вид (процесс десериализации). Сам по себе процесс не представляет никакой угрозы, а опасность возникает, когда приложение работает с вводимыми пользователями непроверенными данными.
Из-за удобства сериализацию поддерживают многие популярные языки программирования, однако именно в Java она представляет собой наибольшую головную боль из-за бесчисленного числа уязвимостей. Как отметил главный архитектор платформы Java Марк Рейнхолд (Mark Reinhold) журналу InfoWorld, реализация в Java поддержки сериализации в 1997 году была «ужасной ошибкой».
По словам Рейнхолда, в настоящее время команда Java работает над тем, чтобы убрать функцию из языка. Тем не менее, разработчики по-прежнему могут при необходимости выполнять операции по сериализации с помощью системы плагинов, доступной через новый фреймворк.
Как пояснил Рейнхолд, никакой определенной даты отказа от сериализации или версии Java, где она больше не будет поддерживаться, не назначено. А пока что компании или руководители проектов, не желающие, чтобы разработчики или вредоносные модули вызывали функцию сериализации/десериализации, могут использовать специальный фильтр, добавленный в Java в 2016 году для блокировки обоих процессов.