URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4296
[ Назад ]

Исходное сообщение
"Прозрачный переход с одного сайта на другой с авторизацией"

Отправлено Сергей , 15-Авг-06 17:33 
Добрый день!

Можно ли сделать такое - у меня есть один сайт с авторизацией и есть ресурс моего знакомого, тоже использующий авторизацию. Я знаю логины и пароли его пользователей, он - моих. Что я хочу - сделать ссылку на своем ресурсе - перейти на сайт к другу. Ссылка вызывает скрипт, который проводит авторизацию, и переходит на сайт.
Как мне кажется, сделать это можно, но вот как? Я постоянно сталкиваюсь с проблемой cookie. Как мне их сохранить и как передать клиенту в броузер? Не очень понятно, если честно.

Заранее спасибо за помощь!


Содержание

Сообщения в этом обсуждении
"Прозрачный переход с одного сайта на другой с авторизацией"
Отправлено exec , 16-Авг-06 01:32 
>Как мне кажется, сделать это можно, но вот как? Я постоянно сталкиваюсь
>с проблемой cookie. Как мне их сохранить и как передать клиенту
>в броузер? Не очень понятно, если честно.

Если суперзащищённость не требуется то что мешает на сайт друга поставить скрипт, которму передаётся
u=юзернэйм
p=хеш_юзерпароля
a=режим, где 1=выдаёт пробел // 0=gif размера 1x1 px
скрипт ставит нужную куку и выдаёт что положено.

Тогда можно было бы при авторизации у вас на сайте вызвать тот скрипт из странички "вы авторизованы на моём сайте" следующим образом:

<script language='JavaScript' src='сайт_друга/cgi-bin/l.cgi?u=юзер&p=пасс&a=1'></script>
<noscript><img src='сайт_друга/cgi-bin/l.cgi?u=юзер&p=пасс' width=1 height=1></noscript>

и юзер при авторизации будет сразу авторизовываться и у вас и у него.
Причём вариантов вызова этого самого скрипта море... Здесь и
<iframe>
и
<link rel="stylesheet" type="text/css" href="скрипт_друга">

Наконец, можно передавать данные прямо в ссылке на сайт друга, а что бы данные с ссылки не перехватили, добавить ещё один параметр:
t=время_в_unixtime
а хеш пароля формировать так (на perl):
$hashpass = md5_hex("$userpass это $time_this");

а потом смотреть:
1. Хеш совпадает для пароля юзера из переменной u= и времени из переменной t=, если да то шаг 2 если нет, то не_авторизовано!
2. Время из перменной t= не отличается от текущего более чем на 60 сек, если нет то авторизовано. Если нет, то не_авторизовано!