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]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Описание: Реализация доступа к сайту для запросов с определенных сайтов
Bio man
Отправлено: 23 Мая, 2015 - 22:54:41
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Ts.Saltan пишет:
Я так понимаю, нужна проверка, что запрос пришел именно от такого-то ip и такого-то домена, тогда можно сделать так.
Хорошая идея но есть 1 НО:
Если злоумышленник приобрёл "ключ аутентификации" и захотел его использовать на нескольких копиях продукта, то модифицировав код "аутентифицированной" системы сможет обойти вышепредложенную защиту.
Вроде понятно отобразил идею обхода на диагараме последовательности. Прикрепил картинку.
(Добавление)
Какие соображения по этому поводу?
Прикреплено изображение (Нажмите для увеличения)
Client-Server Security Breach.png

(Отредактировано автором: 23 Мая, 2015 - 22:55:32)

 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 12:37:56
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Вроде придумал вариант, где злоумышленник не сможет получить прямого доступа к API сервера.
Суть в том, что в ответ на "рукопожатие" сервер высылает ключ доступа, клиент его сохраняет и запускает сокет-сервер.
Сервер коннектится, как сокет-клиент к клиенту по переданному в первом запросе домену.
Если коннекта нет или ключи не совпадают, значит запрос делал не клиент.
Если же всё хорошо, сервер шлёт запрашиваемую информацию и закрывает соединение.
Прикреплено изображение (Нажмите для увеличения)
Client-Server sockets.png
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 12:51:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




И как это помешает мне организовать свой шлюз к твоему сервису?
и не просто все свои проекты к тебе направлять а и вообще торговать твоими услугами налево))
Имхо лучше продавать объем за единицу времени
как я говорил в теме по ссылке выше
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 14:51:18
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
И как это помешает мне организовать свой шлюз к твоему сервису?
и не просто все свои проекты к тебе направлять а и вообще торговать твоими услугами налево))
Видимо никак. К сожалению, никакой способ этому не помешает.

Конечно, я не совсем понял что ты имеешь ввиду, но в данной схеме обрубается доступ с левых доменов, в том числе с левых доменов выдающих себя за правый домен.

Но всё это можно обойти перенаправив полученную информацию с клиента на левые домены (сайты), и никакая защита на сервере уже не защитит, так как обращения к нему происходят только с правого клиента, левые туда даже не лезут, так как бесполезно им туда лыкаться.
(Добавление)
В отличии от этой http://forum.php.su/topic.php?fo...10881#1432410881 схемы, доступ будет иметь только аутентифицированый клиент, левым в доступе будет отказано.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 14:58:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Я имею ввиду давать клиенту 10 000 запросов в месяц - тариф базовый!
И пусть авторизуется хоть с сотни доменов
Оплачивается объем
Предоставляются логи
При 9 000ном запросе высылается предупреждение
Ну и всетакое
А иначе как сам понимаешь все превращается в защиту от честных воровУлыбка
И кстати зачем сокет? Почему просто клиент не может передать адрес на который ему надо отправить запрошенные данные
Чтоб все по http
А еще можешь обфусцировать свой код и предоставлять готовую библиотеку
Всеже както еще отсечешь честных воровУлыбка
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 15:16:17
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
И кстати зачем сокет? Почему просто клиент не может передать адрес на который ему надо отправить запрошенные данные

Первый запрос от клиента идёт по http, где клиент сообщает ключ аутентификации и доменное имя. Сервер в ответе высылает ключ ConnectionKey.

Сразу после получения ответа, клиент создает сокет-сервер и ждёт подключения от сервера.
Сервер подключается по переданному домену из первого запроса.

Если запрос делал левый сайт и передал правый домен, то сервер не сможет подключится, так как там не ждут подключения сервера.
Если всё же сокет-сервер на клиенте и создан, то сравниваются ConnectionKey, что бы определить, действительно ли он делал запрос.

Хотя да, можно просто посылать http запрос с запрошенными данными... В общем, не важно, сокет это или http, принцип один.
(Добавление)
LIME пишет:
Я имею ввиду давать клиенту 10 000 запросов в месяц - тариф базовый!
И пусть авторизуется хоть с сотни доменов
Оплачивается объем
Предоставляются логи
При 9 000ном запросе высылается предупреждение
Ну и всетакое
Предложу твой вариант начальству )) но врятле он с тобой согласится
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 15:27:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




как это неважно?
тыж заставляешь клиентов веб-сокеты учить))
(Добавление)
а если они на хостинге?
сильно ограничиваешь
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 15:35:30
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
тыж заставляешь клиентов веб-сокеты учить))
веб-сокеты тут не задействованы, лишь сокеты между хостами.
LIME пишет:
а если они на хостинге?
сильно ограничиваешь
на хостингах запрещены сокеты?
(Добавление)
И клиенту ничего учить не нужно.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 15:37:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




на них нет сокет-серверов
ты не путаешь обычные tcp сокеты и веб-сокеты?
(Добавление)
мне кажется я ничего не понимаю
ладно
сделаешь отпишешь что получилось)
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 15:42:54
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Ну обычные tcp сокеты и имелись ввиду )) Клиент это не браузер а система на клиентском домене. То есть предполагалась связь "сервер клиента"-"центральный сервер".
До "сделаешь" ещё много месяцев, пока нужно придумать, обдумать, написать, нарисовать. А потом уже делать.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 15:44:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а как ты сможешь ответить на tcp-сокет от клиента?
ты просто попробуй это для начала
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 15:46:38
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
а как ты сможешь ответить на tcp-сокет от клиента?
А как обычно делают общение между сокетами? На том же php.net есть примеры реализации общения клиента и сервера. В моём случае у клиента будет запущен сокет-сервер, а центральный подключится к нему как клиент.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 15:51:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Bio man кто-то один из нас определенно плохо понимает как работают tcp сокеты))
просто попробуй сделать
маленькую прогу
без ключей и всего лишнего
просто открой сокет на клиенте и отправь в него данные с сервиса))
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 15:52:36
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
один из нас определенно плохо понимает как работают tcp сокеты))
видимо это я. попробую
 
 Top
ShniderHost
Отправлено: 25 Мая, 2015 - 16:21:09
Post Id



Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Я в свое время выполнял эту задачу через htaccess, конечно это далеко не лучшее решение, и я это понимаю, но расчет был на простого юзера Ха-ха
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB