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
Форумы портала PHP.SU :: Версия для печати :: PHPSESSID как получить
Форумы портала PHP.SU » PHP » Программирование на PHP » PHPSESSID как получить

Страниц (1): [1]
 

1. exspool - 05 Марта, 2013 - 13:55:09 - перейти к сообщению
Всем привет.

Некий сайт отправляет куку PHPSESSID с номером (пример PHPSESSID=7v9v4dlcqp61rkah0cikubt462) после того как я авторизовался на сайте

Вопрос: Как получить этот номер потом в PHP и подставить его в своем запросе (cURL), чтобы сайт знал что запрос идет от меня (по тому же номеру сессии) и чтобы каждый раз не копировать "ручками" этот номер из кук и вставлять там где нужно? Спасибо.

1) мне нужно как-то получить тот номер сессии который получает браузер при авторизации на сайте
2) этот номер подставить потом в curl'е и отправить как заголовок
3) при запуске скрипта, сервер будет знать что это зашел тот самый человек, так как ему передался тот же PHPSESSID

А если покороче, то можно ли вообще как то получить доступ через PHP к тем кукам которые сохраняются браузером?
2. esterio - 05 Марта, 2013 - 14:16:36 - перейти к сообщению
нужно делать два запроса, один на полуения куки, второй на отсилку данных.
Получить куки:
http://blog[dot]yousoft[dot]ru/2010/03/3[dot][dot][dot]okies-2-sposoba/
Отослать запрос:
3. exspool - 05 Марта, 2013 - 17:32:37 - перейти к сообщению
esterio пишет:
нужно делать два запроса, один на полуения куки, второй на отсилку данных.
Получить куки:
http://blog[dot]yousoft[dot]ru/2010/03/3[dot][dot][dot]okies-2-sposoba/
Отослать запрос:


Я не авторизириуюсь на сайте через кУРЛ! Все ввожу руками. И это все я в курсе. отправить и получить знаю как, но получаю я вовсе не то что хочется. давайте еще раз)

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
4. OrmaJever - 05 Марта, 2013 - 17:45:57 - перейти к сообщению
exspool пишет:
при запуске скрипта в файл cookie.txt записываться НОВЫЙ номер PHPSESSID, который отличается от того который был записан при авторизации, вопрос в том, как получить тот первый PHPSESSID

в этом то и суть, что старый вам уже не поможет, при каждом запросе сервер генерирует новый хеш и старый становится недействительным.
5. esterio - 05 Марта, 2013 - 17:46:25 - перейти к сообщению
значит нужно авторизироватся, мне кажется хоть ви и написали что знаете, но все равно не понимаете. Вам нужно повторить все действия браузера вплоть до залогирования, для автоматического витаскивания sessid
6. Мелкий - 05 Марта, 2013 - 17:46:43 - перейти к сообщению
Силами PHP и для стороннего хоста - никак. Иначе дырище безопасности, дискредитирующее весь механизм кук, и без того не кристально безопасных.
7. LShark - 05 Марта, 2013 - 17:48:58 - перейти к сообщению
Вроде же как только сессия первого прерывается, ее файл удаляется из временной папки сервера и хоть ты завводись его повторно - он не будет принят сервером как "уже использованный".
8. Мелкий - 05 Марта, 2013 - 17:57:15 - перейти к сообщению
LShark пишет:
Вроде же как только сессия первого прерывается, ее файл удаляется из временной папки сервера и хоть ты завводись его повторно - он не будет принят сервером как "уже использованный".

Это не так.
http://habrahabr[dot]ru/post/171151/
Недавно лично видел сессию, стартовавшую месяц назад и всё ещё актуальную Не понял Её жизнь поддерживали периодические пинания пользователя (уж не знаю, чем пинал и зачем)

OrmaJever пишет:
при каждом запросе сервер генерирует новый хеш и старый становится недействительным.

И это не так. Украсть сессионную куку = получить полный доступ к учётке на время жизни сессии (дефолтные настройки - 24 минуты бездействия вкупе с отработавшим сборщиком мусора за прошедшее время)
9. exspool - 05 Марта, 2013 - 19:11:16 - перейти к сообщению
всем большое спасибо за советы!!

Мелкий пишет:

Украсть сессионную куку = получить полный доступ к учётке на время жизни сессии



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

значит выход один, делать полную эмуляцию браузера - начиная с авторизации (а как быть если на сайте стоит капча и путь(URL) к самой авторизации через определенное время генерируется новый)

 

Powered by ExBB FM 1.0 RC1