2014-09-21 4 views
2

У меня вопрос, который основан на классе Serializable.Java Serializable - имеет ли сериализация/десериализация безопасность?

К сожалению, после поиска в Google я не смог найти ответы, которые удовлетворяют моему вопросу.

Вот что я делаю:

Отправка упорядоченный объект через UDP (DatagramPacket) на сервер.

Класс Packet - это абстрактный класс, который все Пакеты должны наследовать. Пакет Serializable и имеет сгенерированный UUID как статическую переменную. И клиент, и сервер имеют сгенерированный UUID.

Сервер десериализует объект, проверяет, наследует ли он пакет, а затем оценивает, к какому классу должен быть отнесен класс пакета (серверный).

Я хочу знать, безопасно ли сериализация и литье объекта; с этим сказано:

Если кто-то изменил класс пакетов на стороне клиента и добавил новые методы и поля и т. д., может ли быть листинг этого объекта на серверном объекте?

Надеюсь, это можно легко очистить.

+0

Эта ссылка может вам помочь: https://www.youtube.com/watch?v=V1vQf4qyMXg#t=3366 – ares

+1

Я не понимаю, что вы думаете, модифицируя класс для добавления методов и полей, связанных с безопасностью , – EJP

+0

.... Вы даже прочитали мой пост? Я отправляю сериализованный объект от клиента к серверу, представляющему игровой пакет. Кто-то изменяет объект на стороне клиента и пытается его отправить. Я спрашиваю, как Serializable относится к этой общей области, поэтому почему я сказал о безопасности. Я не думаю, что вы вообще ничего не понимаете в этой теме. –

ответ

2

Да, есть последствия для безопасности сериализуемых объектов, поскольку они раскрывают частные переменные. Код: Serializable Interface

Что касается добавления новых полей и методов, то есть некоторые совместимые вещи, а некоторые - нет. Пожалуйста, проверьте это сообщение для получения более подробной информации. Java Serialization

Кроме того, для получения более подробной информации проверьте: IBM Dev Works : Java Things

Я надеюсь, что это то, что вы искали.

Смежные вопросы