Мне нужно объединить два сайта, как лучше передать информацию для входа? - PullRequest
1 голос
/ 19 сентября 2011

Итак, у меня есть два сайта, сайты A и B. Мне нужно сделать часть B частью A. Я сделал это, добавив модуль к A, а внутри этого модуля - iframe, который содержал ссылку на B. Итак,фактически B можно по-прежнему использовать как отдельный сайт, но к нему также можно получить доступ через A. Теперь для доступа к обоим сайтам требуется логин.Мне нужно обойти логин для сайта B, когда к нему обращаются через сайт A. Мне удалось его обойти, но только если два сайта размещены на одном сервере (я использовал переменные сеанса), но теперь мне нужно иметь возможностьобходить экран входа в систему B независимо от того, на каком сервере он находится.Итак, как мне это сделать?

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

Есть ли способ использовать GET?Таким образом, сайт A вызывает URL с именем пользователя, записанным в URL, а затем сайт B читает URL, анализирует его и, соответственно, входит в систему.Я понятия не имею, как я могу это реализовать, какой URL мне нужно будет назвать, какой код php понадобится сайту B, и, наконец, как сделать что-то подобное безопасным?

Спасибо зався ваша помощь.

1 Ответ

1 голос
/ 19 сентября 2011

Отправьте UUID с хэшем на сайт B. Хеш должен быть таким, который будут знать и декодировать только оба сервера, поэтому должно работать что-то вроде следующего:

На сайте A

<?php
$salt = 'ashfiu8435t43434t fgfjgfgfuguSGDSBDY77;';
$uuid = ''; // this should be set to the users ID
$hash = sha1($salt . $uuid);
?>
<a href="http://siteb.com?hash=<?php echo ($hash); ?>&uuid=<?php echo $uuid; ?>">Site B</a>

На сайте B

<?php
$salt = 'ashfiu8435t43434t fgfjgfgfuguSGDSBDY77;';
$uuid = $_GET['uuid'];
$sent_hash = $_GET['hash'];
$local_hash = sha1($salt . $uuid);

if($sent_hash === $local_hash) {
   echo 'Logged in! Yay!';
} else {
   echo 'Authentication failed';
}

Вы должны усложнить подделку или вычисление хэша, а также истечение срока его действия через определенное время, чтобы люди не могли просто сохранять хэши и повторно использовать их илипередать их.Я намеренно старался показать, что это сработает.

...