Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2009, 22:18   #1
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию идентификация клиента

Здравствуте! вот мне тут нужно решить задачку, прошу помощи. Суть задачки следующая

имеется вэб-сервер, к нему имеется десктопный клиент. эти двое значит, обмениваются информацией, и клиент может передать на сервер команду, ну скажем увеличить некий счетчик. суть проблемы в том что при передаче используется протокол http и пользователь может сжулить, посмотрев сниффером структуру запроса (команду) и набрать из браузера аналогичную, что поведет увеличение того самого счетчика. так вот как то требуется на сервере идентифицировать что запрос был послан именно десктопным клиентом, а не каким то другим методом. мне требуется только идея, то бишь спихнуть мой заезжанный моск с мертвой точки.... заранее спасибо!
schnaps вне форума Ответить с цитированием
Старый 15.09.2009, 23:47   #2
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

НУ я так по логике думаю. что если клинет может подсмотреть. то он может подглядеть и все прочее.

1. Можно попробовать потребовать повторное подтверждение, скажем в течении 10-15 и если его нет - отбить счетчик назад. Однако в этом случае клиент может извернуться и заранее подготовить второй запрос.
Правда его можно усложнить использованием псевдослучайного числа и проверять его на сервере.

Не очень понятно что у клиента. Если своя программа -то все просто выбери любой алгоритм шифрования данных с ключом и проверяй, как пришли данные. Клиент вряд ли подберет ключ, если не увидит код.

А запросы можно хранить и повторный приход ключа от того же клиента - это лажа. Правда анализ на приход ключа одного и того же от разных клиентов.

2. Либо слать несколько запросов из которых будет собираться один. Если что-то не дошло или разрыв по времени большой - лажа. Хотя... зачем засорять эфир.

НУ как-то так.
и это пройдет...
grenles вне форума Ответить с цитированием
Старый 16.09.2009, 11:40   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ну вариант тупо по ip региться на сервере клиентом... Типо я такой вот хороший мой ip такой... а потом запросы... Если без регистрации то хрент тебе
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 16.09.2009, 17:44   #4
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
ну вариант тупо по ip региться на сервере клиентом... Типо я такой вот хороший мой ip такой... а потом запросы... Если без регистрации то хрент тебе
нет, дело не в том что с другого компа баловаться будут... тут SSL спасет тока в путь... дело в том что например я послыаю запрос из программы (использую Indy):

Код:
s := HTTP.Get('http://server.com/index.php?upcount=1');
а скрипт index.php уже обрабатывает входной параметр и увеличивает скажем некий счетчик (счетчик для простоты восприятия)

или то же самое введу в строку браузер например, эффект будет одинаковым, мне нужно чтоб из клиентской программы команда выполнялась, а из других мест не выполнялась... то есть надо как то однозначно определить что запрос пришел от нужного клиента, а не сформирован вручную или отправлен как то еще
schnaps вне форума Ответить с цитированием
Старый 16.09.2009, 17:47   #5
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от grenles Посмотреть сообщение
1. Можно попробовать потребовать повторное подтверждение, скажем в течении 10-15 и если его нет - отбить счетчик назад. Однако в этом случае клиент может извернуться и заранее подготовить второй запрос.
Правда его можно усложнить использованием псевдослучайного числа и проверять его на сервере.
не канает, серверная часть думаю усложнится дп и ничего это не даст....

Цитата:
Сообщение от grenles Посмотреть сообщение
Не очень понятно что у клиента. Если своя программа -то все просто выбери любой алгоритм шифрования данных с ключом и проверяй, как пришли данные. Клиент вряд ли подберет ключ, если не увидит код.
ну и что что шифрование? снифером смотрится что пошло к серваку ну и пошлем ручками то же самое... мне неважна целостность данных, мне важна идентификация клиента....
schnaps вне форума Ответить с цитированием
Старый 16.09.2009, 18:03   #6
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию

единственно что пришло на ум это прицеплять к запросу метку времени и шифровать строку с запросом, на сервер расшифровывать. И хранить хистори запросов на сервере какое то время, каждый раз проверять и при наличии запроса который уже есть в базе отпинывать его.. чистить базу раз в неделю например....
schnaps вне форума Ответить с цитированием
Старый 17.09.2009, 06:54   #7
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Ихмо ресурсо затратно пару ссылок отслежу и логически сам увеличу счётчик на нужное количество.. Да и шифровка расшифровка занимает время... + ещё и инет...
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 17.09.2009, 15:55   #8
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию

тогда какие предложения?
schnaps вне форума Ответить с цитированием
Старый 17.09.2009, 17:56   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Можно сделать что-то на основе этого, http://programmersforum.ru/attachmen...9&d=1251280197
Смысл в том, чтоб вместе с командой передавать некий случайный ключ, алгоритм генерации которого знает только программа и скрипт на сервере.
(да, там TStrings заменить надо на TStringList, давно писал - не знаю каким чудом оно работает)
пыщь

Последний раз редактировалось JTG; 17.09.2009 в 18:05.
JTG вне форума Ответить с цитированием
Старый 17.09.2009, 19:13   #10
schnaps
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 17
По умолчанию

нод говорит там трой сидит который дэльфи заражает, скинь исходник сюда?
schnaps вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Геометрическая идентификация Kail Помощь студентам 11 19.05.2009 23:08
Идентификация клиента сокет squall Помощь студентам 0 18.04.2009 19:36
Идентификация пользователя Gorychev PHP 9 10.02.2009 08:56
Идентификация пользователя на каком-либо сайте. Продвинутые пользователи - к Вам вопрос. Макса Безопасность, Шифрование 9 23.10.2007 21:36