#php #api #session
#php #API #сессия
Вопрос:
Создание веб-приложения, на 90% основанного на API, что означает, что оно будет размещено на веб-сайте клиента (например clientdomain.com ). Когда выполняются вызовы API, мы создаем и сохраняем идентификатор сеанса в домене клиента, и мы храним всю статистику об их активности, пока посетитель просматривает их сайт.
Но есть одна часть нашего приложения, которая размещена на наших серверах, потому что она должна быть безопасной (например client.ourdomain.com ). Посетители перейдут по ссылке с веб-сайта клиента на наш.
Каков наилучший способ каким-то образом сообщить приложению в нашем домене, что это активный сеанс с идентификатором сеанса XXXXXXX? Я обдумал несколько вариантов:
- Проверьте таблицу сеансов на наличие IP-адреса и метки времени в определенном диапазоне. Очевидно, что это было бы не очень хорошим вариантом, поскольку некоторые большие группы и организации используют один и тот же IP-адрес.
- Передайте идентификатор сеанса в качестве переменной GET, недостатком является то, что эти ссылки могут быть разделены или сохранены для последующего использования.
- Передать как POST var с помощью кнопки формы
- Используйте какую-то динамически создаваемую переменную перенаправления, которая хороша только в течение небольшого периода времени (например, 10 или 30 минут), а затем удаляется
Я упускаю возможное решение?
Наша конечная цель — отслеживать посетителя до достижения цели, чтобы мы могли показать коэффициент конверсии, показатель отказов и т.д. Чтобы сделать это, нам абсолютно необходимо найти посетителя из clientdomain.com чтобы client.ourdomain.com .
Заранее спасибо!
Ответ №1:
Ваш первый вариант — это ответ: идентификатор сеанса IP = Уникальный.
Пользователь A и пользователь B могут иметь один и тот же IP, но их идентификатор сеанса отличается.
Комментарии:
1. Первый вариант уязвим для перехвата сеанса.
Ответ №2:
Пятое:
<a href="http://clientdomain.com/redirect-to-secure.php">go</a>
redirect-to-secure.php:
header('Location: http://client.ourdomain.com/?clientSession=' . session_id());
На client.ourdomain.com , если вы обнаружите clientSession
параметр GET, сохраните его в сеансе и перенаправьте на страницу без clientSession
него. Таким образом, браузер не запомнит этот URL.