Управление браузером и написание сетевых ботов

Selenium Remote Control

Большинство сетевых ботов легко пишутся на Perl с использованием библиотеки WWW::Mechanize или LWP::UserAgent. Но начинаются проблемы, если целевая страница построена на AJAX, поскольку Mechanize не умеет обрабатывать Javascript.

Победить эту проблему можно, заставив обычный браузер делать то, что нужно программе. Для программистов под Windows есть модули Win32::IE::Mechanize, который худо-бедно, но все же управляет ослом и заставляет его лазить по интернету. С юниксовыми ботами несколько сложнее, поскольку браузеры приходится контролировать или через плагины, или через инъекции управляющего Javascript.

Из бесплатных инструментов мне больше всего понравились Selenium Remote Control и Watir. Первый кроссплатформенный, может стыковаться с любым языком программирования и работает практически с любым браузерами на инъекциях Javascript. Но он довольно сложен в настройке и запросто может глючить на формах, содержащих много скриптов.

Watir же может управлять только лисой, и только через плагин, который доступен для скачивания на официальном сайте. Watir не очень хорошо работает с фреймами, но зато не засоряет код полученной страницы дополнительными скриптами. Правда, у этой системы есть один недостаток, она работает только с Ruby (есть еще порт на Java, проект Watij).

ICQ? Jabber? Skype!

Для общения с коллегами я раньше использовал только ICQ. Но с тех пор, как у меня стали появляться заказчики с RentACoder, мне пришлось использовать и другие способы связи.

Удивительно, но аська популярна в основном у нас, на пространстве бывшего СССР. Большинство буржуинов из моего контакт-листа используют Yahoo! Messenger, значительная часть пользуется MSN Messenger А вот Jabber’ом пользуются единицы, несмотря на все преимущества этого протокола обмена сообщениями.

Компания AOL частенько портит кровь пользователям альтернативных клиентов ICQ, меняя протокол сообщений, что приводит к неработоспособности клиентов вроде QIP. Последняя гадость от AOL случилась 21 января, и затронула значительную часть людей из моего контакт-листа. Поэтому я и стараюсь перевести все свои контакты на другие протоколы обмена сообщениями.

Пока мне больше всего нравится Jabber, но им пользуются единицы. Есть даже Jabber-клиенты с возможностью голосового чата, например Google Talk и Jabbin. Ho так как я пользуюсь OpenSUSE, Google Talk мне не подходит. А Jabbin как проект, к сожалению, заглох. Последнее обновление программы было в 2006 году. Нормальных джаббер-клиентов с поддержкой голосового или видео чата не нашел, поэтому и пришлось поставить Skype и Gizmo.

Голосовой чат бесспорно, удобен. Не надо топтать клаву и постоянно пялиться в монитор. Голосовое и видеообщение с компьютера на компьютер и там, и там бесплатное. Ну а за звонок на обычный телефон не грех и заплатить.

Paypal заговорил по-русски

Paypal заговорил по-русски

Ну что же, теперь среди доступных языков в интерфейсе Paypal появился и русский. Для того, чтобы проклятые буржуины перестали нас считать страной третьего мира, осталось сделать совсем немного: включить возможность приниема платежей для граждан бывшего СССР.

Для работы с Paypal вполне подходят карты Visa Virtuon и Visa E-C@rd банков ВТБ и ВТБ24; не тратьте деньги на более дорогие карты, поскольку карты Visa Classic от ВТБ и ВТБ24 с Paypal не работают.

Про Goolge AJAX API

Google AJAX API

Недавно открыл для себя Goolge AJAX API. Оказалось очень полезной штукой; например, можно легко и красиво построить список последних записей блога (смотрим в левый верхний угол), или встроить в страничку переводчик с поддержкой кучи языков. Еще большие чудеса можно вытворять с поиском в Google, в том числе и с поиском по картинкам. Но самое главное, что использование этого API практически не нагружает сервер, поскольку оно все построено на Javascript, выполняется на стороне клиента, а серверная часть скрипта выполняется где-то в Google. Это идеальное средство для украшательства страниц на не очень мощных и недорогих VDS.

Термсы Google не всегда позволяют использовать API так, как нам хочется. Но ничто не запрещает сделать для себя нечто аналогичное и заточить под свои нужды, большую часть кода видно невооруженным глазом.

Полезные сервисы для работы с YouTube

Недавно наткнулся на полезный сервис, который позволяет сохранять локально ролики с YouTube: keepvid.com. Отличная вещь, особенно для тех, у кого скорость соединения с интернетом меньше 256 килобит.
Ролики с YouTube на низкой скорости через браузер просто невозможно смотреть, постоянно воспроизведение запинается и ждет докачки остальной части ролика.
Еще один полезный сервис Gickr позволяет из роликов YouTube делать анимированные GIFы.

MD5 умер. Уязвимость не позволяет его использовать как hash-функцию для проверки целостности программы или подписывания кода.

Вы наверняка уже знаете, что MD5 (Message Digest 5) – это 128-битный алгоритм хэширования, предназначенный для создания отпечатков или дайджестов сообщений произвольной длины. Значительное число программ использует сигнатуры MD5 в качестве контрольной суммы для проверки целостности файлов.
Однако, недавние исследования показали, что и этот алгоритм несовершенен.
Суть эксперимента заключалось в создании двух разных программ, с разными названиями и разной функциональностью; но с одинаковой сигнатурой MD5.
Они взяли MS Visual C++ в качестве компилятора, и написали 2 простейших программы; скомпилировали их и получили 2 исполняемых файла с одинаковой сигнатурой. Исходный текст программы, исполняемые файлы и ключи шифрования доступный по ссылке, приведенной выше; все желающие могут самостоятельно проверить, что сигнатуры этих файлов совпадают.
Таким образом, злоумышленники при серьезном подходе в любой бинарник смогут зашить вирус/троян/или еще какую-нибудь гадость, и измененный бинарник пройдет проверку подписи MD5.
Будте внимательны, и старайтесь не устанавливать программ, сигнатура которых рассчитана с помощью MD5. Сигнатуры SHA-1 на сегодняшний день являются менее уязвимыми для атак, чем сигнатуры MD5; учтите это при установке сторонних программ.