![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 17.01.2015
Сообщений: 15
|
![]() |
![]() |
![]() |
![]() |
#12 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну тут как бы нужно знать специфику твоего задания...
В теории... На своем примере поясню. Есть у мну WEB сервак. Там всякие системные утилиты удаленного управления филиями вращаются. Я подаю запрос: http://localhost/getcompinfo?p=162518 Сервер возвращает мне имя компа филии и его характеристики. Сама клиентская прога просто отображает мне на экране эти данные. Вся логика вынесена на сервер. При получении документа getcompinfo и параметра "р" сервер в БД ищет IP по номеру 162518 и собирает через WMI с него инфу. Но клиентская программа не в курсе что за комп под этим номером стоит, а учитывая что я к примеру могу тупо добавить тому компу памяти или к примеру меня интересует свободное место на том компе, подделать эту информацию не удастся. Злоумышленник без доступа к БД на сервере не будет знать что за запрос и куда ведет, как бы не сниффил его. Вот об этом и речь. Клиентская программа должна посылать на сервак запрос и получив отображать его. Ничего остального она делать не должна. Слышал про технологию RPC (DCOM модули)? Поинтересуйся как она работает. Вообще у нее были бы отличные показатели безопасности, если бы Микрософтовцы не испортили ее усложнениями безопасности. Вот тебе нужно что-то вроде RPC сделать.
I'm learning to live...
|
![]() |
![]() |
![]() |
#13 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Я так понял у афтара защита такая...
По сабжу: 1. да придется сертификаты мутить и трафик в ssl заворачивать... ssl маломальски от снифера спасет. но 100% от MITM атаки не спасет... 2. не надо клиенту отвечать однозначное "Да" или "нет", нужно давать так называемый тикет "билет" на запуск, например тикет на 3 дня/ 10 запусков... тикет должен быть подписан сертификатом сервера... но при этом все равно проверяться на сервере, но не в момент запуска, а так междупрочим, с передачей выданного тикета и параметров системы (проверка использования тикета на разных машинах) в отсутствии связи прога будет работать оговоренное время, а потом обязательный реарм... 3. в отсутствии перезарадки можно постепенно ограничивать функционал (например блокировка печати, сохранения) 4. и чем больше бизнес логики на сервере тем надежней ![]()
Не стесняемся, плюсуем!
![]() Последний раз редактировалось Slym; 17.01.2015 в 20:47. |
![]() |
![]() |
![]() |
#14 | |
Пользователь
Регистрация: 17.01.2015
Сообщений: 15
|
![]() Цитата:
У меня на сервере имеется скрипт проверки , допустим. - http://localhost/?key=00010203040506070809 - Сервер проверяет есть ли в базе данных этот ключ. - Если есть , вводит правильные данные для парсинга. - После парсит данные и подставляет в программу. - Читал про RPC - так и не понял её работу , и как её реализовать. - Прошу дать пример , реализации самого простого кода с RPC и Delphi. |
|
![]() |
![]() |
![]() |
#15 |
Заблокирован
Регистрация: 24.11.2014
Сообщений: 721
|
![]()
NerfDoriftar Как я понял, делается что-то вроде привязки к серверу. В таком случае нужен метод рукопожатия. Программа обращается к серверу сообщая ей рандомный ключ. Сервер генерирует уникальный хэш, и отдаёт программе. Программа своими силами генерирует этот хэш, и сверяет с присланным. Если хэши совпали, сервер наш. Дополнительно программа криптуется протектором от желающих поковырять её внутренности.
|
![]() |
![]() |
![]() |
#16 | |
Пользователь
Регистрация: 17.01.2015
Сообщений: 15
|
![]() Цитата:
Нужно что-то такое чтобы не было проверок "IF". Если вы скажете - "Накрой протектором" , любой протектор в наше время снимается , так-что лучше всё таки "IF" не использовать. Возможно ли скопировать функцию с сервера и вставить в программу после компиляции? Последний раз редактировалось NerfDoriftar; 17.01.2015 в 21:21. |
|
![]() |
![]() |
![]() |
#17 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#18 |
Заблокирован
Регистрация: 24.11.2014
Сообщений: 721
|
![]()
Тогда вариант с переносом большей части логики на сервер. Ломать будет нечего.
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 17.01.2015
Сообщений: 15
|
![]() |
![]() |
![]() |
![]() |
#20 |
Заблокирован
Регистрация: 24.11.2014
Сообщений: 721
|
![]()
Не надо ни чего проверять при запуске. У вас в программе есть хоть одна функция, которая что нибудь считает? Вот и реализуйте её на сервере, а из программы выпилите. Без сервера программа не сможет работать, а подменить его не получится, так как нет алгоритмов функций.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна ваша помощь:) | Gigomod | Операционные системы общие вопросы | 3 | 14.02.2014 16:11 |
Нужна ваша помощь | Шаманочка | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 29.04.2009 20:58 |