Доля входа между PHP и Classic VBScript

Я пытаюсь обновить / поддерживать старый веб-сайт, который был первоначально написан в классическом ASP / VBScript, а позже добавлены PHP-страницы. Я бы хотел настроить его так, чтобы PHP обрабатывал логин, но тогда это состояние входа в систему может быть разделено между PHP и ASP / VBScript. Обратите внимание, что страницы и языки довольно смешаны – кто-то, проводящий время на сайте, может встретить несколько разных страниц на каждом языке, не в каком-то определенном порядке.

(В конце концов, я ожидаю, что он будет полностью переписан на PHP, но я должен съесть этот слон за один раз, и на данный момент я просто пытаюсь улучшить безопасность.)

Предположим, что я успешно выполнил вход и проверил пользователя на PHP, используя что-то вроде phpPass. Как сообщить странице ASP / VBScript, что они просто остановились, что они вошли в систему? Как я могу сделать это безопасно?

(И спасибо за любую помощь!)

    Вы не можете делиться сеансами через классический ASP / VBScript и PHP, поскольку они создают / используют их по-разному. Мое решение не так безопасно, но будет работать:

    1. Войдите в систему через один из языков (скажем, PHP)
    2. Передайте начальную переменную сеанса URL-адрес и запустите ASP, чтобы просмотреть запрос, а затем создайте еще один сеанс для ASP.

    Это будет иметь дело с этим … хотя это не так безопасно!

    Лучший ответ, который я смог найти для этой проблемы, – это следующее. Конкретно для совместного использования логина между классическим ASP и ASP.net, но методология точно такая же:

    Как вы, наверное, уже знаете, классические asp и asp.net не могут использовать одно и то же состояние сеанса, поэтому вам нужно иметь механизм для входа из одного в другой.

    Я бы сделал так: когда кто-то войдет в систему, создайте уникальный GUID, который вы сохраните в базе данных для этого пользователя. Когда вы переходите с одного сайта на другой, передайте этот GUID в строку запроса. Когда вы пытаетесь автоматически зарегистрировать их на другом сайте, найдите этот GUID и посмотрите, привязан ли он к кому-либо. Если это так, запишите их.

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

    Кроме того, разумно добавлять временную метку в базу данных; и GUID должен быть действителен только на второй или второй. Войдите в конец PHP, затем перейдите в ASP и проверьте GUID.

    Не полностью безопасно, но, похоже, так же безопасно, как я собираюсь найти.

    источник: https://stackoverflow.com/a/921575/339440

    Изменить для добавления: для комментариев, а также записать IP-адрес пользователя в базу данных и сравнить его со стороной ASP. Запрещается телепортация!