Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Хакер № 12/04 (72)

Виртуальная голубятня

Константин Клягин

Хакер, номер #072, стр. 072-120-2


  1. Вход. Здесь у юзера будут спрашивать логин, пароль, а также имя или IP-адрес машинки с ящиком. login.php будет подходящим названием такого скрипта.
  2. Отображение содержимого ящика. Здесь будет выводиться список сообщений, коварно поджидающих юзера в ящике (list.php).
  3. Просмотр отдельного сообщения из ящика (read.php).
  4. Создание и отправка нового сообщения или ответ на полученное с цитированием (send.php).

Написание poomail не потребует особенно могучих знаний, достаточно лишь общего знакомства с PHP (который при знании C учится за три минуты), а также с HTML и таблицами в нем для лучшего форматирования отображаемой инфы. Проблема определения реакции на кнопки лучше всего решается с помощью самых простых из возможных вставок на JavaScript.

Вход

В PHP есть понятие сессий, что очень удобно для хранения данных, которые вводятся один раз, но могут быть использованы на разных страницах. Доступны они будут ровно столько, сколько юзер будет ходить по сайту. Для того чтобы воспользоваться сессией в скрипте, достаточно поставить в его начало вызов функции session_start(), а с данными работать посредством массива $_SESSION[]. Собственно, все параметры ящика, заданные юзером в login.php, следующая страница, list.php, аккуратно положит в сессию. А поскольку login.php будет вызываться только в случае нового входа, сессию в нем мы будем очищать. Это полезно, так как страница эта будет также вызываться из других по кнопке logout. В этом случае будет полезно потереть все важные поля сессии:

$_SESSION[host] = $_SESSION[login] = $_POST[password] = "";

Потрошим ящик

Чтобы достучаться до почтовика с заданными на предыдущей странице параметрами, воспользуемся семейством функций imap. Как и 100% всей остальной функциональности PHP, они подробно описаны в мануале. Больших хитростей здесь и не предвидится. Итак, сыграем в ящик:

$mbox = @imap_open("{".$_SESSION[host].":110/pop3}INBOX", $_SESSION[login], $_SESSION[password]);

Координаты задаются текстовой строкой немного специфического формата "{сервер:порт/протокол}". Остальное - собственно логин и пароль. Если по каким-то причинам сыграть в ящик не удалось, imap_open() возвращает FALSE. Так что следом стоит поставить проверку вроде "if(!$mbox)". В PHP есть небольшая хитрость для удобства отладки: по умолчанию установлено, что в случае возникновения каких-то проблем функции выдают сообщения об ошибке. Это можно убрать глобально, с помощью параметра error_reporting в php.ini, однако делать этого не стоит - затруднит обнаружение возможных косяков. Чтобы не прибегать к столь радикальной лоботомии, авторы придумали модификатор «@», который, будучи поставленным перед названием функции, запрещает ей и только ей выдачу сообщения о произошедшей неполадке. Поэтому если imap_open() не сможет соединиться с сервером или указанный в login.php пароль не подойдет к логину, скрипт тихонечко продолжит выполнение вплоть до проверки результата. Ну а если все будет путем (на это и надеемся), то с помощью $mbox можно приступить к работе. Например, вычитывать сообщения. Содержимое можно вычитать циклом, в качестве подготовки к которому имеет смысл получить данные о ящике:

Назад на стр. 072-120-1  Содержание  Вперед на стр. 072-120-3





Предыдущие номера


    Rambler's Top100