LinuxForum.Fans
Тема

bash, curl и авторизация с печеньками

Автор: DiabloPC 4 сообщений 2693 просмотров
09.01.2017 21:18 #418785

Всем привета.
Объясните темному человеку в этих делах:
Есть у нас сайтиГ с авторизацией и соответственно контентом под юзверя...
...да пускай даже тута: незареганые пользователи не видят раздел "Техподдержка"...
И хочется мне в командной строке выдергивать контент под определенного пользователя (ну т.е. сначала авторизоваться, а потом тянуть то что дают)

Порядок действий получается такой:
Первое: можем проверить зашли ли мы под пользователем: login_ok=`curl http://linuxforum.ru/ | grep "Вы вошли как $username"`
Второе: если не вошли, т.е. $login_ok == '' то нам нужно авторизоваться и получить печеньку
Ну и третее: Когда авторизовались и получили печеньку, отправить эту печеньку и получить содержимое страницы http://linuxforum.ru/search.php?action=show_recent (которая для всех групп пользователей разная)

Собственно вотЬ сам вопрос:
Как такое реализовать с помощью curl?

11.01.2017 09:59 #418804

Вот пример авторизации и получения cookie.

1) Нужно взять csrf_token со страницы авторизации

text
 curl http://linuxforum.ru/login.php | grep csrf_token
 <input type="hidden" name="csrf_token" value="9f2f3c1e6271d5e65d12416f2f6423c72b712e3d" />

2) Формируем запрос

text

 curl -X POST -c cookie "http://linuxforum.ru/login.php" --data "form_sent=1&csrf_token=9f2f3c1e6271d5e65d12416f2f6423c72b712e3d&req_username=username&req_password=p@$$word&login=Войти"

пароль должен быть без спецсимволов.

Если всё сделано верно, то будет такой текст

text
 <div class="main-head">
        <h1 class="hn"><span>Успешный вход. Перенаправление</span></h1>
    </div>

Дальше для использования достаточно в запросе указать файл с печенкой

text
curl -b cookie http://linuxforum.ru/search.php?action=show_recent
15.01.2017 16:27 #418964

letnab, Огромное спасибо! *DRINK*

16.01.2017 12:05 #418997

letnab, и от меня спасибо! *DRINK*

Войдите или зарегистрируйтесь, чтобы ответить.