Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Реализация доступа к сайту для запросов с определенных сайтов [2]
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Ts.Saltan пишет:
Я так понимаю, нужна проверка, что запрос пришел именно от такого-то ip и такого-то домена, тогда можно сделать так.
Хорошая идея но есть 1 НО:
Если злоумышленник приобрёл "ключ аутентификации" и захотел его использовать на нескольких копиях продукта, то модифицировав код "аутентифицированной" системы сможет обойти вышепредложенную защиту.
Вроде понятно отобразил идею обхода на диагараме последовательности. Прикрепил картинку. (Добавление)
Какие соображения по этому поводу? Прикреплено изображение (Нажмите для увеличения)
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Вроде придумал вариант, где злоумышленник не сможет получить прямого доступа к API сервера.
Суть в том, что в ответ на "рукопожатие" сервер высылает ключ доступа, клиент его сохраняет и запускает сокет-сервер.
Сервер коннектится, как сокет-клиент к клиенту по переданному в первом запросе домену.
Если коннекта нет или ключи не совпадают, значит запрос делал не клиент.
Если же всё хорошо, сервер шлёт запрашиваемую информацию и закрывает соединение. Прикреплено изображение (Нажмите для увеличения)
LIME
Отправлено: 25 Мая, 2015 - 12:51:35
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
И как это помешает мне организовать свой шлюз к твоему сервису?
и не просто все свои проекты к тебе направлять а и вообще торговать твоими услугами налево))
Имхо лучше продавать объем за единицу времени
как я говорил в теме по ссылке выше
Bio man
Отправлено: 25 Мая, 2015 - 14:51:18
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
LIME пишет:
И как это помешает мне организовать свой шлюз к твоему сервису?
и не просто все свои проекты к тебе направлять а и вообще торговать твоими услугами налево))
Видимо никак. К сожалению, никакой способ этому не помешает.
Конечно, я не совсем понял что ты имеешь ввиду, но в данной схеме обрубается доступ с левых доменов, в том числе с левых доменов выдающих себя за правый домен.
Но всё это можно обойти перенаправив полученную информацию с клиента на левые домены (сайты), и никакая защита на сервере уже не защитит, так как обращения к нему происходят только с правого клиента, левые туда даже не лезут, так как бесполезно им туда лыкаться. (Добавление)
В отличии от этой http://forum.php.su/topic.php?fo...10881#1432410881 схемы, доступ будет иметь только аутентифицированый клиент, левым в доступе будет отказано.
LIME
Отправлено: 25 Мая, 2015 - 14:58:59
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Я имею ввиду давать клиенту 10 000 запросов в месяц - тариф базовый!
И пусть авторизуется хоть с сотни доменов
Оплачивается объем
Предоставляются логи
При 9 000ном запросе высылается предупреждение
Ну и всетакое
А иначе как сам понимаешь все превращается в защиту от честных воров
И кстати зачем сокет? Почему просто клиент не может передать адрес на который ему надо отправить запрошенные данные
Чтоб все по http
А еще можешь обфусцировать свой код и предоставлять готовую библиотеку
Всеже както еще отсечешь честных воров
Bio man
Отправлено: 25 Мая, 2015 - 15:16:17
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
LIME пишет:
И кстати зачем сокет? Почему просто клиент не может передать адрес на который ему надо отправить запрошенные данные
Первый запрос от клиента идёт по http, где клиент сообщает ключ аутентификации и доменное имя. Сервер в ответе высылает ключ ConnectionKey.
Сразу после получения ответа, клиент создает сокет-сервер и ждёт подключения от сервера.
Сервер подключается по переданному домену из первого запроса.
Если запрос делал левый сайт и передал правый домен, то сервер не сможет подключится, так как там не ждут подключения сервера.
Если всё же сокет-сервер на клиенте и создан, то сравниваются ConnectionKey, что бы определить, действительно ли он делал запрос.
Хотя да, можно просто посылать http запрос с запрошенными данными... В общем, не важно, сокет это или http, принцип один. (Добавление)
LIME пишет:
Я имею ввиду давать клиенту 10 000 запросов в месяц - тариф базовый!
И пусть авторизуется хоть с сотни доменов
Оплачивается объем
Предоставляются логи
При 9 000ном запросе высылается предупреждение
Ну и всетакое
Предложу твой вариант начальству )) но врятле он с тобой согласится
LIME
Отправлено: 25 Мая, 2015 - 15:27:30
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
как это неважно?
тыж заставляешь клиентов веб-сокеты учить)) (Добавление)
а если они на хостинге?
сильно ограничиваешь
Bio man
Отправлено: 25 Мая, 2015 - 15:35:30
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
LIME пишет:
тыж заставляешь клиентов веб-сокеты учить))
веб-сокеты тут не задействованы, лишь сокеты между хостами.
LIME пишет:
а если они на хостинге?
сильно ограничиваешь
на хостингах запрещены сокеты? (Добавление)
И клиенту ничего учить не нужно.
LIME
Отправлено: 25 Мая, 2015 - 15:37:04
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
на них нет сокет-серверов
ты не путаешь обычные tcp сокеты и веб-сокеты? (Добавление)
мне кажется я ничего не понимаю
ладно
сделаешь отпишешь что получилось)
Bio man
Отправлено: 25 Мая, 2015 - 15:42:54
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Ну обычные tcp сокеты и имелись ввиду )) Клиент это не браузер а система на клиентском домене. То есть предполагалась связь "сервер клиента"-"центральный сервер".
До "сделаешь" ещё много месяцев, пока нужно придумать, обдумать, написать, нарисовать. А потом уже делать.
LIME
Отправлено: 25 Мая, 2015 - 15:44:17
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
а как ты сможешь ответить на tcp-сокет от клиента?
ты просто попробуй это для начала
Bio man
Отправлено: 25 Мая, 2015 - 15:46:38
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
LIME пишет:
а как ты сможешь ответить на tcp-сокет от клиента?
А как обычно делают общение между сокетами? На том же php.net есть примеры реализации общения клиента и сервера. В моём случае у клиента будет запущен сокет-сервер, а центральный подключится к нему как клиент.
LIME
Отправлено: 25 Мая, 2015 - 15:51:08
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Bio man кто-то один из нас определенно плохо понимает как работают tcp сокеты))
просто попробуй сделать
маленькую прогу
без ключей и всего лишнего
просто открой сокет на клиенте и отправь в него данные с сервиса))
Bio man
Отправлено: 25 Мая, 2015 - 15:52:36
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
LIME пишет:
один из нас определенно плохо понимает как работают tcp сокеты))
видимо это я. попробую
ShniderHost
Отправлено: 25 Мая, 2015 - 16:21:09
Новичок
Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Я в свое время выполнял эту задачу через htaccess, конечно это далеко не лучшее решение, и я это понимаю, но расчет был на простого юзера
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.