Как отслеживать действия пользователя в веб-браузере .NET без запутывания?

У меня есть встроенный элемент управления веб-браузером в приложении WinForms. Пользователь совершает какие-то действия на сайте, которые мне не принадлежат. В конце (например, на последней странице) мне нужно отправить подтверждение на мой сервер (например, через веб-службу), что пользователь действительно сделал то, что должен был сделать.

Прямо сейчас приложение собирает некоторые данные во время этого процесса и после некоторых странных вещей с этим (например, безопасность через неизвестность) отправляет информацию на мой сервер. Сообщение, которое отправляется из приложения на сервер, скрыто, а приложение написано на C++, поэтому его не так просто декомпилировать и проверить, что на самом деле отправляется. Кроме того, пользователь, который может взломать код, имеет возможность заработать очень небольшую сумму денег, и его легко отследить. Такой ситуации никогда не было.

Исходный код перестал поддерживаться, и я хотел бы переписать его с помощью C#. Проблема довольно очевидна: даже запутанный код взломать намного проще, чем старый нативный двоичный код C++.

Вы видите какой-то "безопасный" выход? Есть ли возможность получить что-то вроде цифровой подписи страницы, находящейся под управлением веб-браузера (только подключение https)? Я понятия не имею, как это сделать, кроме как взять учетные данные пользователя на внешней странице и выполнить действия на стороне сервера от его имени, что было бы совершенно неприемлемо.


person Aly    schedule 29.06.2011    source источник
comment
Зачем кому-то заниматься декомпиляцией кода? Просто следите за сетевым трафиком.   -  person Hans Passant    schedule 29.06.2011
comment
Да, вы правы — гораздо проще отслеживать сетевой трафик и взламывать его, но сейчас было бы сложно угадать, какие странности в коде создают итоговое сообщение и каковы точные входные данные. Это скрыто какими-то фиктивными методами и шифрованием, которое, конечно же, находится внутри кода. Было бы намного проще декомпилировать сборку .Net, чем декомпилировать двоичный файл C++ или пытаться взломать сетевой трафик.   -  person Aly    schedule 30.06.2011
comment
Можете ли вы объяснить ситуацию немного больше? Что делает пользователь?   -  person Rob P.    schedule 30.06.2011
comment
Вам нужен способ защитить канал связи между приложением и вашим сервером?   -  person ALOToverflow    schedule 30.06.2011
comment
Я хочу иметь возможность сделать одну из следующих вещей: скрыть мой двоичный файл .Net, чтобы иметь такую ​​​​же силу обфускации / сложности для взломщика, как и в собственном двоичном файле C ++ (что, вероятно, невозможно) ИЛИ без обфускации иметь способ быть уверенным в на стороне сервера, что данные, собранные из управления WB, не были каким-либо образом изменены. Последнее - давайте представим, что пользователь зашел на https://site.com, и мое приложение отправляет его html-источник на мой сервер с подписью с site.com, поэтому я уверен, что этот пользователь не не изменил его, но AFAIK такого не существует, и SSL работает совершенно по-другому, и мне нужно было бы быть MITM.   -  person Aly    schedule 01.07.2011


Ответы (1)


Ваш вопрос не говорит нам о том, как пользователи получают приложение WinForms и т. Д. Но я бы сказал, что единственным «надежным» способом было бы размещение этой логики и кода в ваших собственных контролируемых помещениях. Итак, вот два моих (дорогих, но выполнимых) предложения: Опубликуйте это приложение как:

Опять же, наверное, излишество с точки зрения инвестиций и инфраструктуры (в зависимости от того, насколько это распространено), но тем не менее довольно привлекательно с технической точки зрения, поскольку будет невозможно подслушать, какие данные и куда вы отправляете эту информацию.

person Magnus Johansson    schedule 30.06.2011
comment
Спасибо за ваше понимание. Я никогда не слышал о RemoteApp или чем-то подобном. Конечно, я слышал о RDS. Это выполнимое решение, но требования высоки, а взаимодействие с пользователем может быть очень неприятным из-за высокого сетевого трафика. - person Aly; 01.07.2011