| Leonid Evdokimov ( @ 2009-01-06 04:27:00 |
| Entry tags: | django, google, livejournal, python, rss, rss-proxy |
Даёшь фрэндленту в GoogleReader!
Вообщем, потратил я пару-тройку часов и набросал простенькое django-приложение, которое позволяет читать в google reader подзамочные записи из френдленты.
В текущий момент сервис работает по адресу rss-proxy.darkk.net.ru, на мощностях google appengine, код сервиса лежит на github.
Сервис в настоящий момент простой как топор — вводите логин и пароль от ЖЖ, они шифруются секретным ключем сервера и записываются в URL-ы RSS-потоков. На выходе из предоставленных ЖЖ данных генерируется OPML-файл, который уже можно скормить Google Reader или другой онлайновой читалке.
К вопросу о безопасности. Пароль на сервере не хранится, он зашифрован в URL-е потока. В качестве шифрования используется SHA1-OFB, который считается относительно надежным. Влияют ли найденные в SHA-1 коллизии на стойкость шифра — мне до конца не ясно, и без дополнительного анализа менять шифр на SHA2-OFB я не считаю хорошей идеей. Более подробно про SHA1-OFB можно посмотреть в ChangeLog. Конечно, это не AES и не RSA, но в GAE на настоящий момент этот функционал не доступен. При авторизации сервера rss-proxy в ЖЖ пароль также открытым текстом не передается, т.к. используется digest-аутентификация. Т.е. пароль хранится только в памяти сервера во время обработки запроса. Кто не верит — может посмотреть исходники.
Кстати, некоторые подобные сервисы (например, http://lj.abnib.co.uk/) хранят пароль на стороне сервера, некоторые — не хранят, но закрывают свой код. Например, FAQ freemyfeed говорит, что они используют сдвиговый алгоритм, к которому имеет доступ только главный разработчик сайта
. Напоминает чертовски безопасный ROT-13.
Таким образом, худшее, что может случится — вы куда-нибудь «опубликуете» URL фида, подставив этим своих френдов. В настоящий момент механизма «закрытия» засвеченных фидов нет, но его не сложно сделать.
Согласно информации по Google Reader, он сам фиды не индексирует, всей индексацией занимается GoogleBot, который ходит по ссылкам. Файл robots.txt на сайте лежит и индексирование фидов GoogleBot-ом «запрещает».
Как видно, дизайном сервис не блещет, если у кого-то есть желание это исправить — welcome.