![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.08.2011
Сообщений: 6
|
![]()
Ecть caмaпиcный coфт, кoтopый oбpaщaeтcя к yдaлeннoмy http cepвepy. Cepвep выдaeт индивидyaльный идeнтификaтop для кaждoгo нoвoгo пoдключившeгocя клиeнтa. Пpoблeмa в тoм, чтo пpoшapeнный пoльзoвaтeль мoжeт нaгeнepиpoвaть ceбe кyчy тaкиx идeнтификaтopoв пyтeм oтпpaвки пoдгoтoвлeнныx http-зaпpocoв. Чтo мoжнo cдeлaть c cepвepнoй и клиeнтcкoй чacтью, для пpeдoтвpaщeния дaннoй cитyaции?
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
трудно советовать, не видя конкретики - как обращаются между собой сервер и программа, что представляет собой идентификатор и т.д.
софт на стороне HTTP сервера тоже Вы пишете/он доступен для изменения? Если к серверной части доступа у Вас нет и запрос на подключение к серверу такой простой, что его может понять "прошаренный" пользователь, то про защиту программы (точнее о том, что нельзя получить идентификатор без вашего клиентского ПО) - можете забыть... p.s. всё вышесказанное является моим личным мнением и однозначно может быть ошибочным.. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Пусть удаленный клиент решит задачу. Допустим Вы высылаете набор определенных чисел (каждый раз разный), которые будут являться коэффициентами какого-нибудь уравнения. Пользователь должен вернуть решение
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#4 |
Регистрация: 21.08.2011
Сообщений: 6
|
![]()
Сервер и клиентская программа самописные, т.е. имеется полный доступ. Софт на стороне сервера тоже пишу я. Сервер и клиент общаются через протокол HTTP. Идентификатор представляет собой набор цифр типа "000001", "000002". Пользователь не должен принимать никакого участия в получении идентификатора.
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 21.08.2011
Сообщений: 6
|
![]()
Потому что идея в том, что нужно что бы пользователь просто запускал программу-клиент и не беспокоился, каким образом происходит привязка софта к его компьютеру. Если привязываться к ip пользователя, тогда программа-клиент не сможет работать на машинах которые используют одинаковые прокси. Либо наоборот возможен вариант, когда "пользователь-хакер" получит больше одного идентификатора используя динамический ip.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 20.12.2006
Сообщений: 135
|
![]()
Шифруй данные которые отправляются на сервер от клиента, а на сервере обратно расшифровывай и проверяй соответствие какой нибудь формуле, если ответ формулы верный отправляй либо так же шифрованый пакет, либо в открытом виде.
Ну к примеру запустили клиентскую прогу с идентификатором 150, она отправляет на сервер (предварительно зашифровав) строчку 10,50,150,90, сервер получив расшифровывает строчку складывает 10+50+90 сравнивает с третьим числом 150, если совпало отправляем ключ, если нет шлём нафиг... Примерно так
writeln('Hello Dude!!!');
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 21.08.2011
Сообщений: 6
|
![]()
Этот идентификатор предварительно нужно выдать клиенту при первом обращении к серверу. Выдачу их и нужно контралировать. Количество идентификаторов ограниченно и нельзя допустить выдачу нескольких на одну машину. Или я что-то не правильно понял?
|
![]() |
![]() |
![]() |
#9 |
Ископаемый админ
Форумчанин
Регистрация: 08.07.2010
Сообщений: 992
|
![]()
Пропишите ID и все, что нужно, в куки. Дополнительно можно реализовать то, что вам советуют, идентификацию клиента по типу вопрос-ответ. Тогда все это будет выглядеть так:
1.Сервер проверяет куки на пользовательской машине, если они отсутствуют, то методом вопрос-ответ проверяется, что это ваша программа, а не что-то другое. Реализовать это просто: сервер выдает случайное число, например 211211, клиентская программа должна его обработать по определенной формуле, например 211211*5-128 и выдать серверу ответ. Если сервер получает ответ 1055927, то пользователю выдается ID и прописываются куки. Если нет, то сервер не пускает. 2. Если при проверке куки обнаружены, из них читается ID и начинается работа. Для защиты во время работы не лишним будет использовать механизм сессий.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 21.08.2011
Сообщений: 6
|
![]()
Ок. Всем спасибо. Думаю по другому никак, только достаточно удалить пользователю куки и он может получить новый ID.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Qt] Как применить сигнал в даной программе? | Enchance | Qt и кроссплатформенное программирование С/С++ | 6 | 08.03.2011 16:05 |
Какую формулу применить? | rusgaz | Microsoft Office Excel | 3 | 18.10.2010 23:43 |
Не получается применить DecodeDate | sergey113 | Помощь студентам | 2 | 27.03.2009 23:12 |
через какую сетевую карту входить в инет, а через какую в лан | шКОЛЯР | Свободное общение | 2 | 27.06.2008 17:55 |