Про изменения на сервере ЖЖ
Когда-то давно я выкладывал статьи про взаимодействие с сервером ЖЖ (Основы работы с сервером livejournal.com, Еще раз про авторизацию на сервере livejournal.com и Бот для отправки комментариев), а на этой неделе СУП’овцы что-то поменяли, что примеры из этих статей перестали работать.
Первое изменение заключается в том, что, если раньше для общения с сервером можно было использовать адрес как http://www.livejournal.com/interface/flat, так и http://livejournal.com/interface/flat (для flat-протокола) и, соответстенно, http://www.livejournal.com/interface/xmlrpc или http://livejournal.com/interface/xmlrpc (для протокола XML-RPC), а теперь надо обязательно указывать адрес с «www».
Второе изменение касается авторизации как посетителя. Если раньше на сайте была хорошая авторизация, когда на сервер передается не сам пароль, а его хеш, созданный из пароля и случайного числа, полученного от сервера, то теперь форма для авторизации на странице сайта передает пароль в явном виде. К счастью, старый способ можно по-прежнему использовать (если добавить www к адресу сервера: http://www.livejournal.com/login.bml), но сама авторизация на сайте теперь не безопасна.
Например, вот как выглядит измененный код авторизации для Бота на Python без использования безопасной авторизации:
import urllib import urllib2 def loginAsUser (login, password): """ Авторизация как посетитель сайта """ authData = urllib.urlencode ({"mode": "login", "user": login, "password": password}) server = "http://www.livejournal.com/login.bml" cookieHandler = urllib2.HTTPCookieProcessor () opener = urllib2.build_opener(cookieHandler) request = urllib2.Request (server, authData) fp = opener.open (request) fp.close() if len (cookieHandler.cookiejar) < 2: raise AuthError return cookieHandler.cookiejar
Хочется верить, что такая авторизация появилась по недосмотру, и разработчики вернут старую, более безопасную авторизацию, а уж добавление www как-нибудь переживем.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Leave a comment