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 :: Реализация доступа к сайту для запросов с определенных сайтов [3]

 PHP.SU

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


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

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


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


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


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




Попробовал. За пример взял этот материал: http://i-novice[dot]net/sokety-v-php/
Сервер: (http://server)
Спойлер (Отобразить)


Клиент: (http://client)
Спойлер (Отобразить)


Запускаю сервер в браузере, сервер в ожидании подключения.
Запускаю клиент и сразу появляется ответ и на сервере и на клиенте.

Сервер:
Спойлер (Отобразить)


Клиент:
Спойлер (Отобразить)


Так что всё работает
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 18:36:30
Post Id


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


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


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




Ага....яяясно
А что если на одной машине будет более одного сервера?
Ну например на одном хостинге вдруг два твоих клиента будет крутиться?
Хосты разные а железка одна
Как будет работать?
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 19:13:11
Post Id


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


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


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




LIME пишет:
Ну например на одном хостинге вдруг два твоих клиента будет крутиться?
я же подключаюсь к сокет-серверам по имени домена а не по ip. Не вижу в этом проблемы.
Да и при чём тут "железка"?
(Добавление)
Может в следующем я буду не прав (в плане терминологии), но смысл должен быть понятен.
Связь между процессами будет 1 к 1.
1 процесс Сервера общается с 1 процессом Клиента.
Связь 1 ко многим исключена.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 19:16:39
Post Id


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


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


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




Но ведь на самом деле хост резолвится в ip и соединение происходит на ip
В http есть заголовок host и там все понятно
А если на одной железке откроются два сокета на один клиент и порт, то к какому клиент подконнектится
Мне вот непонятно
(Добавление)
Проверь а
Открой на одной машине но на разных хостах
(Добавление)
Откуда процесс на клиенте узнает с каким процессом ему коннектиться?
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 20:50:37
Post Id


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


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


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




LIME пишет:
Проверь а
Открой на одной машине но на разных хостах
Проверил. Ну чтож, придётся по http коннектится.
Спасибо.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 20:52:20
Post Id


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


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


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




и как проявилось?
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 20:57:42
Post Id


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


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


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




LIME пишет:
и как проявилось?
запустил сервер1. С клиента2 подключаюсь к сервер2 и тут на сервер1 приходит коннект.
(Добавление)
А вот если разные порты, то работает как надо.
 
 Top
LIME
Отправлено: 25 Мая, 2015 - 21:00:55
Post Id


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


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


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




Ну если к всем подключается то можно передавать уникальный токен запроса и каждый будет реагировать на свой ответ
Надо будет почитать сокеты внимательнее Улыбка
(Добавление)
Ну порты это понятно
Только их не напасешьсяУлыбка
(Добавление)
Или только к первому открытому конектит?
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 21:14:56
Post Id


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


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


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




LIME пишет:
Или только к первому открытому конектит?
ага.
LIME пишет:
Ну если к всем подключается то можно передавать уникальный токен запроса и каждый будет реагировать на свой ответ
Можно и так, а можно и http
(Добавление)
с разными портами ок работает
 
 Top
Bio man
Отправлено: 25 Мая, 2015 - 23:43:14
Post Id


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


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


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




Я понял, почему http мне не подходит. Ключ соединения же должен проверяться на сервере а не на клиенте.
В случае с http, нельзя проверить ключ на сервере, так как второй запрос делается с сервера и в нём должны передаваться запрошенные данные.
В случае с сокетами всё проще, сервер коннектится к клиенту, клиент посылает ключ, сервер проверяет и принимает меры.
(Добавление)
Да уж, с сокетами возникает та же проблема, только вид сбоку.
 
 Top
LIME
Отправлено: 26 Мая, 2015 - 02:19:30
Post Id


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


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


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




Можно и с http если отправлять асинхронно
Например устанавливается авторизация
Клиент отправляет запрос в котором есть uri куда отправлять данные ну и токен запроса
Сервис отправляет данные проверив и домен конечно
Принявший данные скрипт например кладет ответ в бд с токеном
Запросивший скрипт опрашивает периодически бд на предмет ответа
вот такой костыль
(Добавление)
Хотя все это конечно полнейшая фигня
Проверять домен при авторизации и хорош
 
 Top
iddqd
Отправлено: 27 Мая, 2015 - 11:59:52
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2013  


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




Привет коллеги! Лайм и Био.
А я все в скайпе пишу и пишу, а тут такая тема Улыбка
Лайм прав на счет продажи пакетов. Только продавать надо не кол-во коннектов, а количество СМС, которые будут приходить к юзеру при запросе восстановления пароля и по расписанию для перекрестной проверки, а также при обновлениях.
А чтобы заморочить голову честным тырильщикам, нужно увеличить кол-во идентификационных данных и абфусцировать ключ активации своим абфускатором с ключем.

Что у нас есть в итоге:
1. ФИО (обязательно)
2. почта (обязательно)
3. мобила (обязательно)
4. уникальный id системы (обязательно)
5. IP адрес сервера
6. доменное имя
7. файловый ключ 2, который проверяет контрольное число при перемножении с другими данными.

И нужен биллинг сервер на котором будут храниться ключи и собираться данные логов апдейтов разных id системы.

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

В реализации механизма с сокетами боюсь что хостинг сервера могут не разрешить такой вид проверки.

Еще волнует как сделать работоспособную систему в случае если биллинг/центральный сервер аутентификации будет заблокирован на некоторое время, ключ генерировать и отсылать на почту скорей всего.

Самое лучшее имхо в систему встроить API которое будет раз в день при заходе в админку обновлять информацию о сроке использования ключа, времени регистрации домена и сроке предоставления хостинга, данные должны вбиваться в БД на сервере с лицензиями и обновляться для пользователя (и удобно, и полезно, и мы в курсе). А на самом сервере сделать систему аналитики использования разных id системы.

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

Бороться с хакерами бесполезно, все можно сломать и подделать, нужно сделать их труд дороже чем покупка лицензии.

Также можно написать exeшник для сервисных функций, таких как регулярные бекапы системы и базы данных, это очень будет полезно и в него вшить дополнительный маячок с обновлениями, exeшник сложно будет распаковать и обезвредить халяву на обновления.
 
 Top
Bio man
Отправлено: 28 Мая, 2015 - 01:46:38
Post Id


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


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


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




Всё это, конечно, ценные мысли, но вопрос в том, как максимально безопасно передать данные клиенту.
Вот, набросал ещё 1 схему.

Достоинства:
1. Минимум запросов.
2. При хищении ключа, данные всё равно придут на нужный домен, а там уже будут решать, их это данные или кто-то от их имени делал запрос.
3. Что-то ещё?

Недостатки:
1. Пока не вижу, может завтра увижу косяки.


Схема открыта для обсуждений, пишите свои мысли.
P.S. Не обращайте внимание на нумерацию, программа сама понаставила.
Прикреплено изображение (Нажмите для увеличения)
Client-Server.png
 
 Top
iddqd
Отправлено: 28 Мая, 2015 - 02:09:51
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2013  


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




Bio man а что будет если аякс запрос не пройдет по каким либо причинам или будет банально отключен в коде?
 
 Top
Bio man
Отправлено: 28 Мая, 2015 - 02:20:52
Post Id


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


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


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




iddqd
1. Зачем его отключать в коде? Вся админка будет одностраничной, построенная на emberjs или подобном фреймворке.
2. Если не пройдёт, то выведется сообщение об ошибке, это же не сложно отследить.

Тут подразумевается, что клиент (который заказчик, тот кто купил лицензию) не будет лезть своими руками в код.
Если и полезет - на его страх и риск.
 
 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