Реклама
  • 30 ноября 2016 г. 11:51

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

Qt, calculate, client

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

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

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

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

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

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

  • #
  • 30 ноября 2016 г. 23:32
Полагаю, что с Qt – это будет довольно сложно; сложнее, чем с Java. Это уже сродни дизасемблированию приложения будет. Проще подменить пакет, который будет идти на сервер. А сервер уже при следующем запросе отдаст подходящую обновлённую информацию с +100500.
Т.е. я мгу перехватить вот это QNetworkAccessManager::sendCustomRequest(request, “PATCH”, buffer);
Поставить свой request и buffer?

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

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

Т.е. можно не волноваться?))))
нет. волноваться нужно )))
Реклама

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
  • Cheessy
  • 23 января 2018 г. 16:39

C++ - Тест 006. Перечисления

  • Результат 80 баллов
  • Очки рейтинга 4
  • Cheessy
  • 23 января 2018 г. 15:52

C++ - Тест 003. Условия и циклы

  • Результат 71 баллов
  • Очки рейтинга 1
  • Cheessy
  • 23 января 2018 г. 15:28

C++ - Тест 005. Структуры и Классы

  • Результат 66 баллов
  • Очки рейтинга -1
Последние комментарии
  • EVILEG
  • 22 января 2018 г. 8:56

QML - Урок 004. Сигналы и слоты в Qt QML

Так и будет передаваться. Это аргумент сигнала. void sendToQml(int count); Видите сигнатуру? аргумент называется count . Вот он и передаётся. А описывать в Q_PROP...

  • xintrea
  • 22 января 2018 г. 8:43

QML - Урок 004. Сигналы и слоты в Qt QML

Не понял, как будет передаваться значение count в QML, если нигде он не описан через Q_PROPERTY

  • EVILEG
  • 21 января 2018 г. 20:42

Qt/C++ - Урок 029. Изображение в базе данных в Qt – Сохранение и Восстановление

Добрый день! Подготовьте изображение к вставке в базу данных через bind, как сделано в методе insertIntoTable, в данном примере. Больше похоже на то, что вылетает неожидан...

  • Mark
  • 21 января 2018 г. 19:32

Qt/C++ - Урок 029. Изображение в базе данных в Qt – Сохранение и Восстановление

Перед этим приложение работало отлично, ошибка связана именно с добавлением данного поля

  • Mark
  • 21 января 2018 г. 19:31

Qt/C++ - Урок 029. Изображение в базе данных в Qt – Сохранение и Восстановление

также вот вывод  текста самого запроса "Insert into commands_one (name, seq, pic) values ('bnbvn','\n1. bvnb\n2. bvnb', �PNG\r\n\u001A\n );"

Сейчас обсуждают на форуме
  • EVILEG
  • 23 января 2018 г. 11:19

Как в QML наиболее правильно сделать ~50 копий изображения?

Добрый день! Вообще самое эффективное, чего я добивался в рамках QML - это отрисовка в рукопашную через OpenGL - это касается скорости отрисовки. Когда создаёте несколько изо...

256 строк в модели данных

Извиняюсь, нашел ответ тут http://www.qtcentre.org/threads/54533-QSqlQueryModel-%E2%80%98s-method-rowcount()-return-256 if(this->canFetchMore()){ this->fetchMore(); }...

  • EVILEG
  • 18 января 2018 г. 20:46

Как проверить доступность сервера

Тут скорее всего ситуативно, но по факту да, в большинстве задач можно обойтись и одним network менеджером

  • EVILEG
  • 18 января 2018 г. 20:46

QGraphicsScene

Как вариант умножать ключевые координаты, от которых вы строите весь панораму, на общую ширину панорамы и при прокрутке отталкиваться от этих кратных координат.

  • Ruslan
  • 18 января 2018 г. 11:51

Исключения. Потоки.

Все оказалось проще. Документацию то читал, но забыл нюансы. Не указывал в connect  тип подключения Qt::DirectConnection