Я пытаюсь обновить / поддерживать старый веб-сайт, который был первоначально написан в классическом ASP / VBScript, а позже добавлены PHP-страницы. Я бы хотел настроить его так, чтобы PHP обрабатывал логин, но тогда это состояние входа в систему может быть разделено между PHP и ASP / VBScript. Обратите внимание, что страницы и языки довольно смешаны – кто-то, проводящий время на сайте, может встретить несколько разных страниц на каждом языке, не в каком-то определенном порядке.
(В конце концов, я ожидаю, что он будет полностью переписан на PHP, но я должен съесть этот слон за один раз, и на данный момент я просто пытаюсь улучшить безопасность.)
Предположим, что я успешно выполнил вход и проверил пользователя на PHP, используя что-то вроде phpPass. Как сообщить странице ASP / VBScript, что они просто остановились, что они вошли в систему? Как я могу сделать это безопасно?
(И спасибо за любую помощь!)
Вы не можете делиться сеансами через классический ASP / VBScript и PHP, поскольку они создают / используют их по-разному. Мое решение не так безопасно, но будет работать:
Это будет иметь дело с этим … хотя это не так безопасно!
Лучший ответ, который я смог найти для этой проблемы, – это следующее. Конкретно для совместного использования логина между классическим ASP и ASP.net, но методология точно такая же:
Как вы, наверное, уже знаете, классические asp и asp.net не могут использовать одно и то же состояние сеанса, поэтому вам нужно иметь механизм для входа из одного в другой.
Я бы сделал так: когда кто-то войдет в систему, создайте уникальный GUID, который вы сохраните в базе данных для этого пользователя. Когда вы переходите с одного сайта на другой, передайте этот GUID в строку запроса. Когда вы пытаетесь автоматически зарегистрировать их на другом сайте, найдите этот GUID и посмотрите, привязан ли он к кому-либо. Если это так, запишите их.
Таким образом, вы не передаете ничего, что пользователь мог бы угадать или расшифровать.
Кроме того, разумно добавлять временную метку в базу данных; и GUID должен быть действителен только на второй или второй. Войдите в конец PHP, затем перейдите в ASP и проверьте GUID.
Не полностью безопасно, но, похоже, так же безопасно, как я собираюсь найти.
источник: https://stackoverflow.com/a/921575/339440
Изменить для добавления: для комментариев, а также записать IP-адрес пользователя в базу данных и сравнить его со стороной ASP. Запрещается телепортация!