wget и авторизация на unixforum (как подружить?)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

wget и авторизация на unixforum

Сообщение t.t »

Хочу немного автоматизировать просмотр форума с помощью wget, но не могу добиться от него авторизации на форуме. Пытаюсь делать так (в точности по документации):

Код: Выделить всё

wget -O /dev/null --save-cookies cookies --keep-session-cookies --post-data 'UserName=t.t&PassWord=***' unixforum.org
wget --load-cookies cookies unixforum.org
Что я делаю не так?..
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: wget и авторизация на unixforum

Сообщение watashiwa_daredeska »

Если я правильно понимаю, в целях безопасности во всех формах присутствует дополнительный параметр, типа:
<input type="hidden" name="auth_key" value="тут фигня всякая нужная" />
Чтоб нельзя было JS'ом на чужом сайте делать посты от лица пользователя. XSRF это, кажется, называется?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: wget и авторизация на unixforum

Сообщение watashiwa_daredeska »

Не, фигню сморозил :)
URL неправильный. Не unixforum.org, а http://unixforum.org/index.php?act=Login&CODE=01. Не знаю, что такое CODE, может тоже не нужен.
Спасибо сказали:
Аватара пользователя
l0stparadis3
Сообщения: 207
Статус: GNU/FireShow
ОС: Mac OS X | FreeBSD

Re: wget и авторизация на unixforum

Сообщение l0stparadis3 »

CODE=01 обязательно, если надо войти на форум.
02 - форма входа, 03 - разлогиниться, 04-06 - всякие операции с куками. Если CODE пустой - идет редирект на форму входа.

auth_key, если я правильно помню, md5 пароля. Или md5 сессии. Если первое - при логине он залезет в куки и вводить его будет не обязательно, если же второе - в принципе о нем можно забыть, влияет только на состояние прочитанных постов и тем.
Если в Linux не существует решения вашей проблемы... То у вас неправильная проблема.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: wget и авторизация на unixforum

Сообщение sash-kan »

Shell

$ wget --load-cookies cookies --save-cookies cookies --keep-session-cookies \ --post-data 'UserName=test-sash-kan&PassWord=***' \ 'http://unixforum.org/index.php?act=Login&CODE=01' -qO index.html $ w3m -dump index.html Refresh (2 sec) http://unixforum.org/index.php? Спасибо вы вошли как: test-sash-kan Подождите, сейчас вы будете перемещены. (Или нажмите сюда, если не хотите ждать) $ wget --load-cookies cookies --save-cookies cookies --keep-session-cookies \ 'http://unixforum.org/' -qO index.html $ w3m -dump index.html | grep 'Logged in' Logged in as: test-sash-kan ( Log Out )
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: wget и авторизация на unixforum

Сообщение t.t »

watashiwa_daredeska писал(а):
15.04.2010 13:27
Не, фигню сморозил :)
URL неправильный. Не unixforum.org, а http://unixforum.org/index.php?act=Login&CODE=01. Не знаю, что такое CODE, может тоже не нужен.
Это я здесь написал с неправильнм. Пробовал с правильным. Но на кпк. Сейчас проверил на десктопе -- работает. Видимо, на n810 wget какой-то неправильный. А жаль... Именно там оно мне и нужно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5457
ОС: Gentoo

Re: wget и авторизация на unixforum

Сообщение /dev/random »

t.t писал(а):
15.04.2010 15:32
Видимо, на n810 wget какой-то неправильный. А жаль... Именно там оно мне и нужно.

А curl там есть? У меня есть набор функций для работы с форумом, работающий через curl (раньше юзал wget, но потом переписал на curl). Может, curl там "правильный"?
Вот фрагмент, используемый для логина:

Код: Выделить всё

INDEX="http://unixforum.org/index.php"

getpage() {
    local u="$1"
    shift
    curl -c mod.coo -b mod.coo -s "$@" "$INDEX?$u" | enconv | sed 's/; charset=windows-1251/; charset=utf-8/'
}

post() {
    local u="$1"
    shift
    local first=true
    for i in "$@"
    do
        if [ -n "$first" ]
        then
            first=
            set -- -F "$i"
        else
            set -- "$@" -F "$i"
        fi
    done
    getpage "$u" "$@"
}

login() {
    local LOGIN="$1" PASS="$2"
    rm -f mod.coo  #важно!
    post 'act=Login&CODE=01&CookieDate=1' "UserName=$LOGIN" "PassWord=$PASS" > login.html
}
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: wget и авторизация на unixforum

Сообщение sash-kan »

t.t писал(а):
15.04.2010 15:32
Это я здесь написал с неправильнм. Пробовал с правильным. Но на кпк. Сейчас проверил на десктопе -- работает. Видимо, на n810 wget какой-то неправильный. А жаль... Именно там оно мне и нужно.
а файл с куками у него есть возможность [пере]записать в текущем каталоге?

t.t писал(а):
15.04.2010 13:07
Пытаюсь делать так
а что именно выдаёт в ответ?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: wget и авторизация на unixforum

Сообщение t.t »

Всё проверял по несколько раз: и результат записи файла cookies, и результаты всех команд, и задаваемые им опции и урлы. И ни разу ничего не работало как надо. А сейчас решил на всякий случай проверить ещё раз -- и вдруг заработало. Перед этим делал apt-get update, но wget, насколько помню, не обновлял. Хотя кто знает, может быть, "на автомате"?..

Что это было, не понял, но теперь это уже не столь важно. Спасибо всем за участие.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: wget и авторизация на unixforum

Сообщение t.t »

Похоже, wget я таки не обновлял. Он тут вообще не виноват. Я почему-то (сам не знаю, почему) проверял правильность результата браузером. Правильный результат возникал (это я уже потом понял) когда страница сохранялась под другим именем. Вы уже догадались? (: Браузер закешировал в памяти результат рендеринга для более быстрого отображения!!! Неправильным на самом деле был только самый первый результат, когда я, видимо, допустил какую-то опечатку. Когда понял, десять минут сам с себя смеялся.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: wget и авторизация на unixforum

Сообщение drBatty »

t.t писал(а):
16.04.2010 17:49
Браузер закешировал в памяти результат рендеринга для более быстрого отображения!!! Неправильным на самом деле был только самый первый результат, когда я, видимо, допустил какую-то опечатку. Когда понял, десять минут сам с себя смеялся.

:)
я с самого начала темы выискивал у вас опечатку, и не мог её найти...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: wget и авторизация на unixforum

Сообщение t.t »

drBatty писал(а):
16.04.2010 18:12
t.t писал(а):
16.04.2010 17:49
Браузер закешировал в памяти результат рендеринга для более быстрого отображения!!! Неправильным на самом деле был только самый первый результат, когда я, видимо, допустил какую-то опечатку. Когда понял, десять минут сам с себя смеялся.
:)
я с самого начала темы выискивал у вас опечатку, и не мог её найти...
Видимо, я её исправил до того, как копировать команды сюда -- и только после того, как исправление опечатки не дало результата, и стал писать на форум.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: