МАСКИРОВКА В СЕТИ - персональный фильтр базара  


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

Лекарство

Лекарством от этого дела у нас послужит прога под названием proxomitron. Эта прога разработана каким-то очень неглупым японцем и раздается всем налево и направо абсолютно бесплатно. Последнее время, правда, официальный сайт программы (proxomitron.cjb.net) закрылся ввиду несогласия автора Proxomitron-а с политикой размещения страниц, а именно с размещением баннеров и pop-up окошек. Сейчас он существует по адресу www.proxomitron.org, но в значительно урезанном виде. Для закачки можно воспользоваться и официальной страничкой, но для русификации придется пользоваться неофициальной ссылкой http://proxomitron.nm.ru/download.htm. Последняя версия это 4.4 от 2002-10-28, это не бета четвертая, поскольку дальше будет описываться именно она, настоятельно советую качнуть. Принцип работы достаточно прост, ты задаешь порт, который прокс должен будет слушать, затем в браузере прописываешь его как проксятник, и он начинает фильтровать весь пролетающий через него трафик. Фильтровать он может как входящий (странички), так и исходящий (теги браузера) трафик. Для осуществления всего этого существует скриптовый язык, или язык метасимволов, это язык поиска и замены, очень сильно напоминающий работу с переменными в Perl-е. Также есть возможность простого запрета сайтов и сервис коротких имен.

Настройка

Теперь давай заточим этот топор под наши с тобой нужды. Для начала тыкаем кнопку config и выбираем последнюю закладку "HTTP". Настраивай порт, который тебе удобен, затем таймаут; если ты скачал модуль поддержки ssl, то скинь dll-ки в windows\system или ..\system32 и ставь галочку, теперь у тебя будет проверяться и https трафик. Закладка access позволяет настроить прокс не только на твой комп, но и на сетку целиком, если она есть, конечно. Blockfile - это те файлы, которые определяют политику в целом, разберемся с ними по очереди. AdKeys - файл правил для отрезания баннеров у сайтов, те закорючки, которые ты видишь в нем, - это и есть язык обработки строк (подробное описание будет чуть позже), тут описаны основные правила, по которым прокс определяет, что картинка является баннером. AdList - это список URL-ов с заядлыми банарейщиками, используется аналогично предыдущему списку для кастрации рекламодателей. AliasList - тот самый сервис коротких имен. Возьмем пример, поставляемый с проксой: строка "ms/ $JUMP(http://www.microsoft.com/)" будет означать "меняй адрес ".ms" на адрес мелкомягких". Все, теперь, чтобы попасть к мелкомягким, тебе достаточно набрать ".ms". Насчет последней строки, советую ее не изменять, она позволяет делать запросы на google простым набором "./drivers". Файл Bypass содержит адреса, которые не будут обрабатываться, туда можешь занести свою домашнюю страничку, чтобы не терять показы баннеров при собственном заходе. CookieList - список серваков, куки с которых можно принимать. Если выставлена опция "резать куки", то со всех остальных серваков куки будут умирать в корзине; как пример: если у тебя почта на mail.ru и ты до сих пор пользуешься веб-интерфейсом с автонабором пароля, то можешь смело прописывать мылру в этот список, чтобы не парится и не вводить каждый раз пароль. MIME-List - весьма полезная вещь для нетскейполюбов, иногда бывает так, что сервер не совсем правильно настроен или скрипт криво написан, тогда при посылке html файла и установленным типов plain-text нетшкаф просто покажет тебе исходник (черным по белому), а не ту красивую страничку, которую видит автор скрипта в IE. А все дело в том, что IE обрабатывает все страницы как HTML, а Netscape смотрит, что летит, - то и показывает. Для фикса достаточно прописать, что htm и html имеют тип "text/html". И последний файл NoImages, работает только при включенном "Kill all Images on selected pages", позволяет не качать картинки со страниц, обозначенных в списке.

Теперь давай посмотрим на главное окошко, слева есть куча галочек, по очереди сверху вниз: фильтр страницы, фильтр исходящего заголовка (версия браузера и пр.), фильтр входящего заголовка (MIME-fix и пр.), заморозка анимированных гифок и пользоваться или нет проксиком. Все эти галочки (кроме Remote proxy) отрубаются одним нажатием на кнопку Bypass. Кнопка Abort позволяет прервать все соединения одним разом, очень помогает при глобальном подвисании кучи окон. Кнопка LogWindow очень пригодится при разработке нестандартного веб-приложения, все отчетливо видно, что улетело, что прилетело и почему была ошибка, эдакий он-лайн дебаггер трафика. HTTP-Proxy это то самое место, где можно прописать внешний проксик. Я лично использовал его для проверки анонимности, потому как видно, что прилетает от проксика. Web pages и Headers используются для настройки фильтра трафика на языке метасимволов. Разбираться начнем с более простого - с Headers. Для начала - имя хедера, возьмем для разбора на запчасти LastModified. После имени стоит URL match, оставим пустой, нам все равно, с какого адреса это пришло. Header value match - чему должно быть равно значение хедера, звездочка означает, что менять будем всю строку. Replacement text - текст на что менять, пустота значит просто стирать. Теперь кратко о полях для страничного фильтра. Filter-name никак не влияет на работоспособность, URL match - таргетинг на конкретный адрес, Allow for multiple matches - означает, что таких совпадений может быть несколько на страницу и не стоит останавливаться после первой найденной. Bounds match - границы поиска, не стоит тут ставить * - это будет весьма солидно грузить тачку, а следовательно, и тормозить наш комп. Byte limit - это если было найдено начало границы, но никак нет конца (ну, забыли тег закрыть горе-дезигнеры), так вот, это максимальный размер проверяемого кусочка, это же значение используется при запоминании, если стоит "*". Matching expression - это, собственно, то, что прокс будет искать на страничке. Replacement text - на что будет заменять. Кнопочка test позволяет отдебажить наш скрипт, нажав на нее, в верхнее окошко вводим пример (я обычно ввожу просто source со странички) и давим на test; если все нормально, давим done.

Кодим в проксе

Все, с мелкими настройками покончено, теперь давай погрузимся в дебри программирования и обработки строк. Все правила абсолютно безразличны к регистру. Символ "*" это строка любых символов и любой длины. Знак "?" соответствует одному любому символу. Используя скобки "[]", можно задавать перечисления символов [asdfg], можно диапазон [a-z3-5], можно несоответствие [^a-z] = не буквы. Для чисел есть еще диапазон [#50-200], будет соответствовать числу от 50 до 200, а выражение [#3-*] значит больше трех, можно применить [#453], при этом не будет обращаться внимание на нули вначале и присутствие кавычек вокруг. Символ пробела позволяет выкидывать любое количество пробелов, идущих подряд, что весьма удобно при обработке html, при этом пробелов может не быть совсем. Очень похожа работа символа "\s", но в данном случае должен быть хотя бы один пробел для соответствия. Если надо найти или заменить именно символ табуляции, то используй "\t", аналогично перевод каретки "\r" и символ новой строки "\n". Для сравнения тегов наиболее подходящий символ "\w", он принимает любое количество символов (не пробелов или табуляций) и перестает искать, как только находит пробел или символ ">". Есть также и переменные(\0,\1...\9), которые можно брать во время поиска и подставлять после поиска. Все переменные существуют локально, то есть для каждой правила свои. Например, если надо поменять значение всех картинок, то можно проделать следующее: нужно менять "< img \1 src=* \2 >" на "< img \1 src=mypicture.gif \2 >" - таким образом у нас сохранятся все остальные параметры и поменяется только сама картинка. В переменную можно также поместить конкретное найденное слово, используя скобки: (asd\w )\1 - поместит слово, начинающееся на asd. Имеются также и логические операции, например, для поиска тега iframe или layout можно написать iframe|layout, то есть "|" это логическое "или". Для поиска "flopy disk или disk flopy" лучше использовать оператор & (логическое "и"), у нас получится disk&flopy, но это не будет соответствовать только одному из слов. Для поиска слов door и doom можно использовать круглые скобки doo(r|m), такое выражение найдет оба слова. Для поиска повторяющихся символов используй "+", то есть, чтобы заменить все doom, doooooom и dom на dem, нужно менять "do+m" на "dem". Единственная проблема: если искать r+root, то прокс ничего не найдет, так как первый символ "r" из рута съест поиск. Для того чтобы он нашел, надо использовать ++, то есть r++root, и прокс все сделает правильно. Кавычки будут соответствовать и одинарным, и двойным кавычкам. Есть также метасимволы, которые ничего не ищут, а просто производят действие. Так, например, \k убивает соединение, что полезно при фильтрации страниц. Символ "\u" - вставляет весь URL, \h - только имя хоста, \p - только путь, \a вставляет имя внутренней ссылки (якоря, то что идет в адресе после #), \d подставляет file://каталог,_где_стоит_прокометрон, удобно использовать для подмены картинок или файлов локальными. Помимо метасимволов, в последних версиях появились команды, они все начинаются с бакса. $AV - ищет значение, не смотря на кавычки, так <img src=($av(\0))\1>, теперь в \0 лежит адрес картинки, а в \1 лежит адрес в кавычках (если они были). Если надо сохранить только выражение с кавычками, то лучше использовать $avq(\0). Для сравнения с условием, которое хранится в файле, достаточно написать $lst(filename), это как команда #include в сях или флеше. Следующая команда это $nest, он позволяет искать среди тегов, так $nest(<body>,\0,</body>) запомнит все, что находится внутри тегов, в переменную "\0". Командой $set можно принудительно прописать переменную $set(0=home) или переназначить одной переменной другую $set(0=\1). Команда $stop() - остановит весь последующий поиск. Вот, собственно, и все, чем я реально пользовался, остальное можно найти в хелпе к проге.

Входящий мусор

Давай теперь попробуем рубануть тег с картинкой 468 на 60. Для этого вписываем в параметры поиска "< img * width=$av(468) * height=$av(60) >". Пиши именно так, с пробелами, все дело в том, что один пробел соответствует нескольким пробелам или ни одному пробелу, так что вреда от него не будет, но в случае присутствия пробелов в тегах он тебя спасет. Менять будем на <no img>, вот так все просто, так как по стандарту, если браузер не знает тега, то он ничего не должен делать, это сделано для совместимости разных версий браузеров. Резать по урлу еще проще, нужно только поменять src=... на локальный файл или аналогично предыдущему. Но помни, если ты меняешь на пустоту, то есть вероятность, что у тебя собьется дизайн сайтика. Хотя, если честно, для отреза рекламы в проксе достаточно предустановленных скриптов, нужно только их включить.

Исходящий мусор

Вот тут можно на славу поиздеваться над админами и создателями хитроумных скриптов на сайтах, потому как большая часть их просто скидывает в лог-файл все то, что у тебя прописано по умолчанию в твоем браузере. Давай для начала сменим ему имя, для этого можно воспользоваться стандартным, установленным фильтром, который называется "User-agent: чего-то-там"; вот вместо "чего-то-там" и вписывай то, что тебе больше по душе. Можешь написать там IE, можешь написать нетшкаф, дело твое, по умолчанию предыдущая версия проксомитрона вписывала туда "Space-bison", что в принципе тоже выход. Только не забывай, что если ты там напишешь что-нибудь "эдакое", то тебя будут везде и всюду узнавать, поскольку ты будешь единственным челом на всю планету с таким браузером, так что, убегая от анонимности, не стоит ходить в бронежилете и в шубе летом.

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

Халява!

Теперь давай поговорим о не совсем стандартном использовании проксы, мы будем использовать его для заказа халявы. Поверь, даже ко мне в Тмутаракань прилетает халява, не все, конечно, но процентов 15 долетает в целости и сохранности. Давай разберем один из листингов, что нам надо делать и как. Во-первых, нам надо найти сайт с халявой, я не буду писать никакие адреса, потому как за рекламу ни мне, ни журналу никто не платил, потрудись, поищи сам, не забывай про яндекс. Нашел? Молодец, теперь берем форму, которую нам надо заполнить, и мы увидим на ней "First Name", что есть наше имя. Открывай сырец, можешь скатать все, но пригодится только та часть, которая стоит между <form...> и </form>. Открой свой прокс, заходи в Web pages, мы будем вписывать имя прямо в форму, а не при посылке, для того чтобы можно было контролировать процесс и, если что, дописать или переписать наш скрипт. Теперь создавай новый фильтр, советую начало имени фильтрам давать одинаковые, например, "xalyava_Fname", так их будет легче отыскать в списке. Не начинай с Bounds match, ускорением и шлифовкой займешься в самом конце, сначала движок. В match expression впиши "<input * name=$AV(*first*)", в replacement вписываем value="Vasya pupkin" и жмем test. В верхнее окошко вписывай исходник с халявной странички (пока достаточно вписать ту строку, где написано что-то вроде "<input type=text ... name="FirstName">", поищи, должно быть обязательно. Дави тест, и мы видим, что он просто заменил строку целиком - вместо вписывания твоего имени. Для того чтобы он сохранил старое, нужно это где-нибудь запомнить. Поэтому добавим переменных, чтобы получилась следующая строка поиска "( < input * name = $AV(*first*) * )\1 >", а внизу \1 value="VasyaPupkin">. Если ты сделал все по рецепту, то все должно работать, и не забывай про пробелы, вставляй их везде и всюду, лишними они не могут быть. Давай теперь разберемся, как это работает. Сначала прокс ищет треуголку "<", потом слово input, потом параметр name, равный чему-то-first-чему-то, и если это найдено, при условии, что в этой же строке есть закрывающая треуголка, записывает все в переменную 1. Затем вписывает все, что запомнил, кроме закрывашки, добавляем наше имя (value=...) и закрываем тег вручную, поскольку закрывашку мы не сохраняли в памяти. Теперь давай немного переделаем фильтр, используя границы, что ускорит его работу. Для этого в границах надо поместить "< input * >", то есть будем искать только в этом теге, тогда в поиске останется "( * name = $AV(*first*) * )\1 >", длину границ можешь поставить 1024, этого сполна хватит на одну строку. Жми Ok, включай свой фильтр (установи галочку), жми Apply, и если не выскочили ошибки, жми Ok.

Нажав на зеленую дискетку, можешь сохранить свой скрипт на диск, в файл загружаемый по умолчанию. Все, теперь ты знаешь, как подставить имя, также можно подставить фамилию, адрес и прочую ерунду. При боевых испытаниях ты увидишь, что вся форма за тебя уже заполнена и тебе остается только согласиться. Проверить работу скрипта можно нажав на "Log window", в окне пурпурным цветом будет что-то вроде "Match 556: xalyava_Fname", что значит - "ваше правило 556 сработало". Не забывай, что иногда имя называют просто "name" или "Fname". Для простоты создания похожих фильтров используй кнопочку "dupe", которая копирует выделенный скрипт и дает тебе его отредактировать. Лично я всегда считал, что лучше день потерять, зато потом за пять минут долететь, так что если ты хочешь автоматизировать что-то с вебом, это лучший и, как ни странно, бесплатный способ сделать это. Главное - не забудь отключить все эти автозаполнения, когда будешь ходить по порносайтам, а то много чего им интересного сообщишь. Все, удачной тебе настройки и изучения скриптов, а я пойду закажу пару десятков дисков, пора менять обои на стенах.

 

содержание

Хостинг от uCoz