Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: PHPSESSID как получить
Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012
Помог: 0 раз(а)
Всем привет.
Некий сайт отправляет куку PHPSESSID с номером (пример PHPSESSID=7v9v4dlcqp61rkah0cikubt462) после того как я авторизовался на сайте
Вопрос: Как получить этот номер потом в PHP и подставить его в своем запросе (cURL), чтобы сайт знал что запрос идет от меня (по тому же номеру сессии) и чтобы каждый раз не копировать "ручками" этот номер из кук и вставлять там где нужно? Спасибо.
1) мне нужно как-то получить тот номер сессии который получает браузер при авторизации на сайте
2) этот номер подставить потом в curl'е и отправить как заголовок
3) при запуске скрипта, сервер будет знать что это зашел тот самый человек, так как ему передался тот же PHPSESSID
А если покороче, то можно ли вообще как то получить доступ через PHP к тем кукам которые сохраняются браузером?
esterio
Отправлено: 05 Марта, 2013 - 14:16:36
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Я не авторизириуюсь на сайте через кУРЛ! Все ввожу руками. И это все я в курсе. отправить и получить знаю как, но получаю я вовсе не то что хочется. давайте еще раз)
1) захожу я на сайт, ввожу логин и пароль, сайт автоматически мне присваивает уникальный PHPSESSID и записывает в куки
2) когда я перехожу по страницам сайта, то в firebug видно что браузер каждый раз передает этот номер в заголовках и сервер уже знает что я авторизован
3) теперь я иду в код и запускаю свой скрипт. с помощью курла хочу имитировать уже авторизованого пользователя, тоесть хочу подставить этот номер в заголовки куки, для этого иду в firebug, копирую и вставляю в код, когда запускаю скрипт все отлично работает
4) как получить этот номер сессии автоматически??
это не подходит
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
допустим
$ch = curl_init("http://www.site.com/");
при запуске скрипта в файл cookie.txt записываться НОВЫЙ номер PHPSESSID, который отличается от того который был записан при авторизации, вопрос в том, как получить тот первый PHPSESSID
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
exspool пишет:
при запуске скрипта в файл cookie.txt записываться НОВЫЙ номер PHPSESSID, который отличается от того который был записан при авторизации, вопрос в том, как получить тот первый PHPSESSID
в этом то и суть, что старый вам уже не поможет, при каждом запросе сервер генерирует новый хеш и старый становится недействительным.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
esterio
Отправлено: 05 Марта, 2013 - 17:46:25
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
значит нужно авторизироватся, мне кажется хоть ви и написали что знаете, но все равно не понимаете. Вам нужно повторить все действия браузера вплоть до залогирования, для автоматического витаскивания sessid
Мелкий
Отправлено: 05 Марта, 2013 - 17:46:43
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Силами PHP и для стороннего хоста - никак. Иначе дырище безопасности, дискредитирующее весь механизм кук, и без того не кристально безопасных.
----- PostgreSQL DBA
LShark
Отправлено: 05 Марта, 2013 - 17:48:58
Частый гость
Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012
Помог: 1 раз(а)
Вроде же как только сессия первого прерывается, ее файл удаляется из временной папки сервера и хоть ты завводись его повторно - он не будет принят сервером как "уже использованный".
----- Истина прежде всего в том, что...
Мелкий
Отправлено: 05 Марта, 2013 - 17:57:15
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
LShark пишет:
Вроде же как только сессия первого прерывается, ее файл удаляется из временной папки сервера и хоть ты завводись его повторно - он не будет принят сервером как "уже использованный".
Это не так. http://habrahabr[dot]ru/post/171151/
Недавно лично видел сессию, стартовавшую месяц назад и всё ещё актуальную Её жизнь поддерживали периодические пинания пользователя (уж не знаю, чем пинал и зачем)
OrmaJever пишет:
при каждом запросе сервер генерирует новый хеш и старый становится недействительным.
И это не так. Украсть сессионную куку = получить полный доступ к учётке на время жизни сессии (дефолтные настройки - 24 минуты бездействия вкупе с отработавшим сборщиком мусора за прошедшее время)
----- PostgreSQL DBA
exspool
Отправлено: 05 Марта, 2013 - 19:11:16
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012
Помог: 0 раз(а)
всем большое спасибо за советы!!
Мелкий пишет:
Украсть сессионную куку = получить полный доступ к учётке на время жизни сессии
вот!!!! именно то что нужно, эта кука используется (не меняется) вплоть до того пока браузер не будет закрыт. нужно как то получить к ней доступ, но как...
я думал может просто файл открывать тот что в недрах браузера с куками (от туда кстати его видно этот PHPSESSID) и потом парсить и подставлять уже в курле, но это геморно немного, думал проще будет как то...
значит выход один, делать полную эмуляцию браузера - начиная с авторизации (а как быть если на сайте стоит капча и путь(URL) к самой авторизации через определенное время генерируется новый)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.