Имеется форма авторизации на "другом" сайте, два поля - login, password. Данные мне известных.
Мне нужно на своём сайте сформировать ссылку/кнопку, по клике на которую у меня открывался "другой" сайт уже авторизованный.
Проблема в том, что "другой" сайт отдаёт 403, если не передан реферрер с его страницы аутентификации.
Как мне оказаться залогиненым на "другом" сайте?
P.S. На "другом" сайте я не могу вноснить никакие изменения.
Через curl у меня получилось отобразить содержимое "другого" сайта на своей странице. А мне нужно перейти на него. header('location'...) в данном случае не помог.
Curl-ом то он все это проэмулирует, но куки от того сайта в браузере сами собой не появятся и с этого сайта их не назначишь. Так что при переходе на тот сайт пользователь не будет залогинен.
romy4: Так ему надо не курлом на сайт войти, а пользователя туда перенаправить залогиненным. Дмитрий: может, с iframe поиграться? Загрузить в него страницу с формой, заполнить, отправить.
Потом уже перенаправлять пользователя на тот сайт. То, что данные авторизации будут светиться открытым текстом, вас, возможно, не пугает...
Дмитрий: не, вам надо не посылать браузер на тот сайт, а через свой скрипт, как прокси отдавать запрос на тот сайт. Вы не можете явно подставить куки того сайта в браузер — это запрещено механизмом безопасности в любом браузере
Adamos: не представляю как это сделать. Допустим, делаю iframe src= "другой" сайт форма авторизации. Как я её заполню? без участия пользователя.
Авторизация и так будет светиться, там http
romy4: Мне нужно сделать возможность интерактивной работы с тем сайтом. То есть все относительные пути к скриптам-картинкам сделать абсолютными. Это мне кажется не очень лёгким решением.
Дмитрий: JS позволяет залезть со страницы в дочерний фрейм.
HTTP везде, но одно дело - когда вы с сервера обращаетесь к сайту и POST-ом отдаете ему данные, другое - когда у вас в браузере пользователя открытым текстом используются логин и пароль (для заполнения формы).
Дмитрий: ну да, что-то я туплю - второй-то сайт не ваш.
Получается, вы пытаетесь сделать классический CSRF, от которого любой современный браузер защитит своего пользователя, не дав вам никаких шансов.
Дмитрий: вашу задачу не решит, потому что нельзя будет перейти на другой сайт залогиненым. Только будет выглядеть как на локальном mysite.com/anothersite/login