|
Модераторы: Snowy, Poseidon, MetalFan |
|
GhoulZEA |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.9.2011 Репутация: 1 Всего: 1 |
Delphi 2010
Делаю Web-сервер через idHTTPServer. Сейчас процесс авторизации выглядит так: Человек вставляет e-token, стучится на сайт. Сервер через IOHandler (TIdServerIOHandlerSSLOpenSSL) реагирует на событие и вызывает функцию OnVerifyPeer,
где проверяется отпечаток ключа. Если ключ нормальный и существует, то функция возвращает True и авторизация продолжается. Сервер в процедуре idHTTPServerCommandGet запрашивает логин и пароль
Получается, что проверка сертификата оторвана от проверки логина и человек (у которого есть подлинный сертификат) может зайти под любым логином. Можно ли получить какой-либо идентификатор человека/сессии в sslOpenVerifyPeer, по которому можно будет однозначно опознать его в процедуре idHTTPServerCommandGet? К примеру IP? |
||||
|
|||||
~FoX~ |
|
|||
НЕ рыжий!!! Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 3 Всего: 68 |
Насколько я помню, однозначное опознавание, чаще всего, происходит по МАК адресу....
|
|||
|
||||
GhoulZEA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.9.2011 Репутация: 1 Всего: 1 |
Да вся проблема в том, что процедура onVerifyPeer не получает ничего кроме сертификата. Т.е. в ней я однозначно могу сказать, что у такого-то сертификат в норме и разрешаю ему входить. А вот как после этого идентифицировать (и назначить права) человека в idHTTPserver не знаю :(
|
|||
|
||||
Drug51 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 15.11.2016 Репутация: нет Всего: нет |
Подскажите, решили ли проблему? И каким образом вы получаете отпечаток? можно по подробней о sslOpenVerifyPeer |
||||||
|
|||||||
GhoulZEA |
|
||||||||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.9.2011 Репутация: 1 Всего: 1 |
Проблема более или менее была решена. Возможно не совсем правильно. По отпечатку ключа каждой персоне присваивался ip. А в CommandGet опрашивался ip и от этого уже работала.
А потом появилась другая Часть пользователей сидела за маршрутизатором и соответственно все они имели один внешний ip, но права должны были быть разными. Пришлось задействовать куки. Правда уже прошло 5 лет и честно говоря я уже плохо помню что сделал. Из программы надёргал кусков.
|
||||||||||||
|
|||||||||||||
Drug51 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 15.11.2016 Репутация: нет Всего: нет |
GhoulZEA, Спасибо за оперативный ответ! Вы заставили меня копать дальше))) и вот ответ на вопрос. Думаю тема закрыта.
Это сообщение отредактировал(а) Drug51 - 16.11.2016, 12:08 |
|||
|
||||
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |