Сервер / клиентское приложение обмениваются данными друг с другом, используя данные в формате XML, используя соединение TCP. Это потрясающе, поскольку мне не нужно беспокоиться о сериализации / десериализации сложных данных.
Чтобы разрешить получение данных XML, я добавляю длину документа XML (в байтах) к данным, отправляемым через сетевой сокет; таким образом, принимающее приложение знает, сколько данных прочитано, прежде чем оно сможет десериализовать данные в формате XML.
Теперь я пытаюсь представить возможные дыры в безопасности в клиент-серверном приложении, которое использует такую структуру сообщений.
Помимо проблем, в основном связанных с транспортируемыми данными, я думаю, что данные в формате XML защищают сервер от вредоносных сообщений. Не так ли? Если ответ верный, остается только один вопрос: что произойдет, если злонамеренный клиент отправит мне сообщения, объявляющие огромный размер сообщения (путем изменения целого числа, вставленного в начало сообщения).
Результатом будет DOS, поскольку на простом сервере процесс очень очень большого (легального) сообщения ...
Можно ли избежать информации о «размере сообщения»? Как я могу предотвратить DOS-атаку?