powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как произвести запуск браузера одновременно с логином на сайте?
24 сообщений из 24, страница 1 из 1
Как произвести запуск браузера одновременно с логином на сайте?
    #37062374
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть внутренний сайт с вводом логина-пароля в форме на главной странице.
Есть программа на C++ Builder.
Нужно ряду пользователей показывать этот сайт, но так, чтобы они не знали своего логина-пароля на сайте. Прога, естественно, логин-пароль знает.
Возникает вопрос - как бы открыть в браузере нужную страницу на сайте так, чтобы пользователь был уже авторизован?

Желательно, чтобы метод работал для любого браузера. Но если заработает хотя бы с одним - уже хорошо.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062431
miksoft, сайт какой? Самописный? Тогда пускай учится отдавать и принимать session token'ы хотя бы через урл.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062438
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сайт на CMS, но самописный. В том смысле, что не заказной.

Через URL - нельзя, т.к. тогда этот URL можно будет скопировать на сторону, и тогда кто-то на стороне получит доступ к сайту, а это недопустимо.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062485
spudei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, программа заходит на сайт, потом экспортирует cookies в браузер и запускает его.
Только сайт должен использовать SSL, иначе пользователь сможет перехватить логин и пароль.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062494
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft , как сам сайт проверяет, при обращении к произвольной странице, авторизован пользователь или нет?
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062495
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spudeiВозможно, программа заходит на сайт, потом экспортирует cookies в браузер и запускает его.Как технически выполнить "программа заходит на сайт" так, чтобы еще куки образовались? И как в таком случае сделать, чтобы куки протухли сразу же, как будет закрыт браузер?
spudeiТолько сайт должен использовать SSL, иначе пользователь сможет перехватить логин и пароль.Это необязательно, у нас пользователи не настолько продвинутые.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062511
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa miksoft , как сам сайт проверяет, при обращении к произвольной странице, авторизован пользователь или нет?Если честно - не знаю.
Подозреваю, что через PHPSESSID в куках. Но при переходе с одной страницы на другу PHPSESSID меняется.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062546
spudei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftКак технически выполнить "программа заходит на сайт" так, чтобы еще куки образовались?
Получает страничку с формой для логина, получает cookie.
Заполняет форму, отравляет на сервер вместе с cookies.
Получает ответ и cookies, если вход успешный экспортирует cookies.

miksoftИ как в таком случае сделать, чтобы куки протухли сразу же, как будет закрыт браузер?
Думаю, через период устаревания пользовательской сессии.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062568
spudei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - есть инструменты управления браузерами (типа selenium/watir).
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062601
miksoftСайт на CMS, но самописный. В том смысле, что не заказной.

Через URL - нельзя, т.к. тогда этот URL можно будет скопировать на сторону, и тогда кто-то на стороне получит доступ к сайту, а это недопустимо.
Sancta simplicitas.

1) Получив данный урл сервер может послать куку которая обычно посылается при логине/пароле => урл действителен один раз.
2) т.к. "тогда эту куку можно будет скопировать на сторону, и тогда кто-то на стороне получит доступ к сайту, а это недопустимо.", то технически разницы вообще ноль. Просто с урлом копировать легче.
3) Привязка IP, нэ?

ты что, вообще думать не пробовал?
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062645
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГостьГостьГость1) Получив данный урл сервер может послать куку которая обычно посылается при логине/пароле => урл действителен один раз.За идею про одноразовый URL спасибо, посмотрю, что сайт сможет в этом направлении.
ГостьГостьГость2) т.к. "тогда эту куку можно будет скопировать на сторону, и тогда кто-то на стороне получит доступ к сайту, а это недопустимо.", то технически разницы вообще ноль. Просто с урлом копировать легче.Копирование куки - это уже достаточно сложная операция. Да не пройдет это, насколько я знаю.ГостьГостьГость3) Привязка IP, нэ?Это само собой разумеется. Но понятие "на сторону" включает и тех сотрудников нашей же организации, которым видеть этот сайт по должности не положено.
ГостьГостьГостьты что, вообще думать не пробовал?Пробовал. К сожалению, мои познания во всяких куках, PHP-сесиях и т.п. не позволяют думать сразу в правильном направлении.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062663
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕсли честно - не знаю.
Подозреваю, что через PHPSESSID в куках.
Ясно...

А как вообще организован процесс авторизации? Сайт работает с БД в которой и хранятся логины+пароли?

miksoftЕсть программа на C++ Builder.
Она имеет доступ к той БД? Может там чего-то менять?

Как такая идейка:
- Программка (зная логин+пароль) в некой временной БД генерит запись, де "вот этому можно"
- Даёт команду браузеру открыть страницу, указав ИД (или некий идентификатор) той записи
- Страница должна уметь обрабатывать урл с этим ИД
- Если ИД указан - читать из временной таблицы логин+пароль, выполнять регистрацию, после чего отрисовываться
- Удалять ту запись из временной таблички
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062708
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsamiksoftЕсли честно - не знаю.
Подозреваю, что через PHPSESSID в куках.Ясно...

А как вообще организован процесс авторизации? Сайт работает с БД в которой и хранятся логины+пароли?Пароли в открытом виде там, конечно, не хранятся.
Пользователи заводятся руками через админку CMS.
krvsamiksoftЕсть программа на C++ Builder.Она имеет доступ к той БД? Может там чего-то менять?Нет, к БД сайта программа доступа не имеет. И строить этот доступ бессмысленно, т.к. при очередном апдейте CMS там (в БД) может что-то поменяться.
krvsaКак такая идейка:
- Программка (зная логин+пароль) в некой временной БД генерит запись, де "вот этому можно"
- Даёт команду браузеру открыть страницу, указав ИД (или некий идентификатор) той записи
- Страница должна уметь обрабатывать урл с этим ИД
- Если ИД указан - читать из временной таблицы логин+пароль, выполнять регистрацию, после чего отрисовываться
- Удалять ту запись из временной табличкиЗа идейку спасибо, но я сильно сомневаюсь, что смогу ее реализовать, ибо во внутренностях CMS (да и вообще в PHP) разбираюсь крайне слабо.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37062768
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spudeiКак вариант - есть инструменты управления браузерами (типа selenium/watir).Вот мне пока в эту сторону думается. Правда, названные средства, похоже, через чур монстроидальны, поищу попроще.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37063351
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

программно залогиниться на сайте проще простого (обычные http-запросы, есть библиотеки во всех языках). А вот передать куки в браузер - задача трудная и малоисследованная. Неизвестно, какой браузер у пользователя.

Потому поддержу вариант krvsa . Ничего сложного. Просто из программы отправляется http-запрос на сайт (с логином/паролем), в ответ приходит ID, и с нем уже (в урле) запускается браузер. В ПХП просто смотрим значение переданного параметра в $_GET['param_name'].
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37063395
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaКак такая идейка:
1. Программка (зная логин+пароль) в некой временной БД генерит запись, де "вот этому можно"
2. Даёт команду браузеру открыть страницу, указав ИД (или некий идентификатор) той записи
3. Страница должна уметь обрабатывать урл с этим ИД
4. Если ИД указан - читать из временной таблицы логин+пароль, выполнять регистрацию, после чего отрисовываться
5. Удалять ту запись из временной таблички
Добавлю, что у временной таблички должно быть поле "стереть эту запись после такого-то времени", индекс по этому полю, и в планировщике задач (и/или в начале пункта 4) стиралка всех записей, "протухших" по той или иной причине, но не стёртых самим приложением.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37063399
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru , это все уже особенности той или иной СУБД... Не более того.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37063431
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Обидно будет, если из-за такой мелочи сайт однажды потеряет девственность.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37064012
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока я пошел другим путем.
По следующим ссылкам:
http://msdn.microsoft.com/en-us/library/aa752127%28VS.85%29.aspx
http://www.sql.ru/forum/actualthread.aspx?tid=347441&pg=1&mid=3257346&hl=ihtmlformelement#3257346
http://forum.codenet.ru/printthread.php?s=0a066bdb5f0fd0288836a92d4395d7b6&t=17473
http://delphiworld.narod.ru/base/ie_fill_forms.html
нарыл рецепт управления эксплорером для заполнения в нем нужных полей, попробую его.
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37064241
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftнарыл рецепт управления эксплорером для заполнения в нем нужных полей, попробую его. топик с получившимся кодом и дополнительными вопросами .
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37065014
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftнарыл рецепт управления эксплореромА если у юзера не эксплорер?
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37065029
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечmiksoftнарыл рецепт управления эксплореромА если у юзера не эксплорер?В нормальной винде он есть всегда, а невиндовые случаи и случаи зверско-ломанной винды меня не интересуют.
Хотя бывают случаи, что он еле работает из-за обилия глюков и всяких установленных яндекс-гугл-мейлру баров. На такой случай ищу сейчас решение для другого браузера, возможно, даже SSB (site-specific browser).
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37434503
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
SSB здесь говорит об другом. Прошу прощения за вопрос - но что имеется ввиду? Жестко сказать клиентам - "использовать только IE"???
Вообще говоря это уродство типа Garant.ru** - с привязкой к IE (СПС крутая и очень удобная, но денег пожалели программеру, чтобы дописать несколько строк кода, чтобы работало для всех Browsers)
проблема только в одном объекте -
XMLHttpRequestВремя действовать – Quickstart AJAX
1. В приложении A вы найдете инструкции по установке и настройке
вебсервера и созданию каталога, доступного через Интернет, с име
нем ajax, в котором будут размещаться все исходные тексты приме
ров из этой книги. В каталоге ajax создайте каталог quickstart.
2. В каталоге quckstart создайте файл с именем index.html и добавьте
в него следующий код:
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN"
" http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<title>AJAX и PHP: Quickstart</title>
<script type="text/javascript" src="quickstart.js"></script>
</head>
<body onload='process()'>
Сервер желает узнать ваше имя:
<input type="text" id="myName" />
<div id="divMessage" />
</body>
</html>Создание простого приложения на основе AJAX и PHP
3. Создайте новый файл с именем quickstart.js и добавьте в него сле
дующий код:
// запомнить ссылку на объект XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// создать объект XMLHttpRequest
function createXmlHttpRequestObject()
{
// для хранения ссылки на объект XMLHttpRequest
var xmlHttp;
// если сценарий запущен под управлением Internet Explorer
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
// если сценарий запущен под управлением Mozilla или другого броузера
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
// вернуть созданный объект или вывести сообщение об ошибке
if (!xmlHttp)
alert("Ошибка создания объекта XMLHttpRequest.");
else
return xmlHttp;
}
// выполнить асинхронный запрос HTTP с помощью объекта XMLHttpRequest
function process()
{
// работа возможна только если объект xmlHttp не занят
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// получить имя, введенное пользователем в форму
name = encodeURIComponent(document.getElementById("myName").value);
// обратиться к сценарию quickstart.php на сервере
xmlHttp.open("GET", "quickstart.php?name=" + name, true);34 Глава 1. AJAX и будущее вебприложений
// определить метод, который будет обрабатывать ответы сервера
xmlHttp.onreadystatechange = handleServerResponse;
// послать асинхронный запрос серверу
xmlHttp.send(null);
}
else
// если соединение занято, повторить попытку через одну секунду
setTimeout('process()', 1000);
}
// вызывается автоматически по прибытии сообщения от сервера
function handleServerResponse()
{
// продолжать можно только если транзакция с сервером завершена
if (xmlHttp.readyState == 4)
{
// значение 200 говорит о том, что транзакция прошла успешно
if (xmlHttp.status == 200)
{
// извлечь XML, полученный от сервера
xmlResponse = xmlHttp.responseXML;
// получить корневой элемент в структуре XML
xmlDocumentElement = xmlResponse.documentElement;
// извлечь текстовое сообщение, которое находится в первом
// дочернем элементе корневого узла
helloMessage = xmlDocumentElement.firstChild.data;
// обновить текст сообщения на экране
document.getElementById("divMessage").innerHTML =
'<i>' + helloMessage + '</i>';
// повторить последовательность действий
setTimeout('process()', 1000);
}
// код статуса HTTP, отличный от 200, говорит о наличии ошибки
else
{
alert("При обращении к серверу возникли проблемы: " +
xmlHttp.statusText);
}
}
}
4. Создайте файл с именем quickstart.php и добавьте в него следующий
код:
<?php
// результаты будем отправлять в формате XML
header('ContentType: text/xml');
// сгенерировать заголовок XML
echo '<?xml version="1.0" encoding="UTF8" standalone="yes"?>';
// создать элемент <response>
echo '<response>';
// получить имя пользователяСоздание простого приложения на основе AJAX и PHP 35
$name = $_GET['name'];
// сгенерировать текст сообщения в зависимости
// от имени пользователя принятого от клиента
$userNames = array('CRISTIAN', 'BOGDAN', 'FILIP', 'MIHAI', 'YODA');
if (in_array(strtoupper($name), $userNames))
echo 'Здравствуйте, мастер ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Скажи мне, как зовут тебя, незнакомец!';
else
echo htmlentities($name) . ', вы мне не знакомы!';
// закрыть элемент <response>
echo '</response>';
?>
...
Рейтинг: 0 / 0
Как произвести запуск браузера одновременно с логином на сайте?
    #37434649
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovmiksoft,
SSB здесь говорит об другом. Прошу прощения за вопрос - но что имеется ввиду? Жестко сказать клиентам - "использовать только IE"???Я сам ваш вопрос не очень понял :(
Правильная ссылка на SSB - http://en.wikipedia.org/wiki/Site-specific_browser
Но, если честно, тему SSB я так и не стал исследовать. Оно пока не настолько нужно.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как произвести запуск браузера одновременно с логином на сайте?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]