Есть ли у Apache Thrift какие-либо встроенные проверки целостности данных? Гарантирует ли это, что данные всегда остаются неизменными? Я отправляю большое количество двоичных данных по сервису Thrift, и я не уверен, что мне нужно выполнить любую дополнительную проверку целостности, например контрольную сумму MD5.Обеспечивает ли Apache Thrift целостность данных?
ответ
Нет, нет такой вещи, как встроенное обнаружение ошибок. Эта задача предоставляется разработчику и/или другим частям стека связи.
Первый вопрос, который задал бы вопрос, был бы простым CRC32, или если вам нужны более сильные инструменты, например, некоторые SHA. Верхний конец, вероятно, будет полноценной криптографической инфраструктурой для подписи сообщений и проверки подлинности с помощью асимметричных ключей.
Для каждого из этих случаев использования имеются хорошие библиотеки. Как правильно указали другие, если транспорт зависит от TCP и, возможно, даже от TLS/SSL, который один может быть достаточным. Просто не нужно снова изобретать это колесо. И, как указано выше, если действительно необходимо, задача может быть легко делегирована specialized, custom transport implementation как «многоуровневый транспорт», как это делает TFramedTransport
.
Уровни Apache Thrift: explained here. Это разумное предположение, что ошибки могут произойти только в транспортном слое. Если вы используете транспортные интерфейсы TCP или HTTP (который основан на TCP), данные будут передаваться без изменений, так как это TCP works.
Примечание: Я предполагаю, что вас не беспокоит безопасность вашего канала связи. Если вы это сделаете, ни TCP, ни контрольные суммы не будут защищать вас от изменения вредоносных данных. В такой ситуации вам нужен безопасный коммуникационный туннель, такой как SSL/TLS. См.: Thrift/SSL.
«* данные будут переданы без изменений *», если вы не столкнетесь с атакой MITM. Затем данные по-прежнему остаются неизменными в терминах TCP, однако конечный результат может все еще быть не таким, каким вы хотите. Только один пример, когда предположения могут нарушаться. – JensG
@JensG Хорошая точка. * Только один пример, когда предположения могут нарушаться. * Есть ли другие? – cubuspl42
Если мы подумаем достаточно долго, мы придумаем некоторые из них. ;-) – JensG
- 1. Обеспечивает ли шифрование целостность?
- 2. Обеспечивает ли файловая система любую целостность файла?
- 3. Обеспечивает ли msmq целостность данных в транзакционных очередях?
- 4. Apache Thrift Подсветка/авто завершение
- 5. Как бэкэнд как поставщик услуг обеспечивает целостность данных?
- 6. Словарь Различные типы данных Apache Thrift
- 7. Parse Apache Thrift file
- 8. Apache Thrift через Интернет
- 9. Журналы сервера Apache Thrift
- 10. Apache Thrift, Java: Типы данных объекта
- 11. Выполняет ли запросы Apache Thrift TSimpleServer?
- 12. Предоставляет ли Apache Thrift API отражения?
- 13. apache thrift, serialize unsigned
- 14. apache Thrift TNonblockingServer Ошибка
- 15. Целостность данных в Git?
- 16. Сохраняет ли целостность данных xinetd?
- 17. Общие объекты в Apache Thrift
- 18. apache thrift C++ async client
- 19. Сочетание Apache Thrift с Apache Cordova
- 20. Неблокирующий сервер Apache Thrift Python
- 21. Apache Thrift java минимальное требование
- 22. Распространение пакетов с Apache Thrift
- 23. Максимальный размер сообщения Apache Thrift
- 24. Apache Thrift C++ typedef issue
- 25. Цикл внешних событий Apache Thrift
- 26. Обеспечивает ли TLS целостность и конфиденциальность передачи данных на предприятии RESTful Java
- 27. Лучший дизайн схемы для отношения таблицы, который обеспечивает целостность
- 28. Как убедиться, что C# обеспечивает целостность? (DLL не изменена)
- 29. Предоставляет ли chrome.serial API целостность данных?
- 30. Целостность данных перед миграцией
Thrift построен поверх обычных сетевых уровней (TCP), который имеет такой контроль. Чтобы сказать правду, иногда я реализую CRC на уровне «моего уровня», но мотивация - ловить логические ошибки. –
"* Thrift строит поверх обычных сетевых слоев *" - Thrift не ограничивается TCP. Некоторые люди используют его с системами шины сообщений или сериализуют дату в файлы. Вероятно, правильный вопрос в этом вопросе, но не как общее утверждение. – JensG