Реклама

Перенос расчетов на сторону клиента

Qt, calculate, client

@andrey30 ноября 2016 г. 17:51#

Добрый день. Такой филосовский вопос чтоли…

Пользователь клацает по кнопке и на сервер идет сигнал. Сервер принимает этот сигнал и из него понимает что нужно делать следующее:

– к нужной циферке в поле юзера прибавить 1
– отправить новые данные юзеру

Вопрос: Можно ли… данную операцию прибавления отдать клиенту. Ну т.е. клиент получил данные от сервера пибавил 1 и отправил на сервер.

Зачем так? – для разгрузки сервера от лишних операций по вычсилению и переноса этих операций на сторону клиента чтоб загрузить его мощности. Таким образом сервер всего лишь пишет данные в БД.

Я понимаю, что звезды могут так сойтись, что данное приложение скачает невъеб…ного ума хакер)) возьмет файлы , вытащит из них кодировку операции +1 и сделает себе + 1 000 000. И реально ли такое (про хакера я имею ввиду)?

@EVILEG1 декабря 2016 г. 5:32#ответил @andrey
Полагаю, что с Qt – это будет довольно сложно; сложнее, чем с Java. Это уже сродни дизасемблированию приложения будет. Проще подменить пакет, который будет идти на сервер. А сервер уже при следующем запросе отдаст подходящую обновлённую информацию с +100500.

Реклама

@EVILEG1 декабря 2016 г. 12:24#ответил @andrey

Добрый день.

Начнём с хакера. Вы же вроде к серверу и обратно в JSON формате гоняете сообщения? А это текстовый формат, который к тому же парсится ещё лучше, чем XML. Здесь достаточно просто половить сообщения с помощью WireShark и посмотреть, что там написано, а потом просто подменить содержимое сообщений.
Если хотите обезопасится на этот счёт, то нужно смотреть в сторону шифрования. В минимальном варианте посмотрите хотя бы в сторону https, QNetworkAccessManager понимается этот протокол. Хотя, если это атака не со стороны, а как Вы описали изнутри, то вряд ли поможет. Нужно тогда смотреть в сторону SSL.

Что касается первого вопроса, то да. Конечно можно. Отправляете сообщение пользователю, он модифицирует данные и возвращает модифицированное сообщение. Для контроля можно добавить какой-нибудь флаг, который будет говорить серверу, что нужно обновить данные.

@andrey1 декабря 2016 г. 14:24#ответил @EVILEG

Не.. на сервер идет в json.

Я имею в виду, что приложение с телефона взять, найти часть кода где еть это прибавление и подменить. Насколько ткая операция вообще возможна?

@andrey1 декабря 2016 г. 17:01#ответил @EVILEG
Т.е. я мгу перехватить вот это QNetworkAccessManager::sendCustomRequest(request, “PATCH”, buffer);
Поставить свой request и buffer?

Реклама

@EVILEG1 декабря 2016 г. 17:07#ответил @andrey

Нет. Можно перехватить пакет, который уже идёт по сети и заменить содержимое. В данном случае нужно, чтобы пакет данных передавался через какой-нибудь маршрутизатор с вредоносным ПО, которое отвечает за парсинг и замену содержимого. В качестве маршрутизатора может выступать даже обычный ПК.

А что касается метода QNetworkAccessManager::sendCustomRequest(request, “PATCH”, buffer);, то здесь скорее уже внедрение фейковой библиотеки QNetwork, но в случае с Андроидом это не прокатит, там цельная apk, а не набор библиотек.
А чтобы заменить часть кода – это нужно перекомпилировать само приложение, нужны исходники.

@andrey1 декабря 2016 г. 17:22#ответил @EVILEG
Т.е. можно не волноваться?))))
@EVILEG1 декабря 2016 г. 18:57#ответил @andrey
нет. волноваться нужно )))

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь

Реклама