Ознакомьтесь с нашей политикой обработки персональных данных
15:35 

Faultier
Мизантроп-альтруист
Я администрирую один интернет-магазин, работающий на открытом движке, основанном на osCommerce. Будни вебмастера бывают довольно нудными, поэтому я сделал себе крайне простую, но крайне поднимающую настроение приблуду. Пишется на коленке, самыми простыми средствами Apache и PHP, но позволяет довольно оперативно реагировать на попытки взлома и закрывать дыры, в которые пытаются лезть. Она сгодится и для самонаписанных сайтов, и для сайтов с открытым кодом.

Я думаю, не стоит говорить о том, что папку /admin/ не стоит оставлять с таким именем, а ещё лучше переместить её куда-нибудь, желательно вообще на другой уровень/домен. Если паранойя не мешает работе сайта, лишней она не бывает. ИМХО. Я переименовал и убрал родную админскую среду, и создал в корневом каталоге свою папку /admin/, но там лежат всего два файла: .htaccess и index.php.

Единственная работа .htaccess — перенаправлять все запросы на индекс. Три строчки, выглядят вот так:


Сам индекс не намного сложнее. Он просто берёт IP и запрос, и посылает мне на мэйл. Сделать это можно очень многими путями. У меня путь был такой:
<?php
$ip
='';
if (
$_SERVER["HTTP_X_FORWARDED_FOR"]) 
   
$ip $_SERVER["HTTP_X_FORWARDED_FOR"]; 
else 
   
$ip $_SERVER["REMOTE_ADDR"]; 


@
mail(    'tvoi@mail.adres',
       
'Кто-то лезет в админку',
       
'Кто-то пытался нас найти:'."\n".
       
'www.ip-adress.com/whois/'.$ip."\n\n".
       
$_SERVER['REQUEST_URI']);
?>


Как видно, он мне просто отправляет мэйл, с ссылкой на whois-сервис, время, IP и запрос. Можно пожаловаться в abuse-team. Нужно забанить по IP. Необходимо убедиться, что дыры, в которые лезут, у тебя уже закрыты. Можно написать в теле индекса, что твой IP залогили, будут на тебя жаловаться, и вообще пативэн за тобой уже выехал. Это работает только совсем на школьников, конечно.

Что можно делать со свежедобытым IP и сканером портов когда слишком скучно, говорить, думаю, не стоит. Если вы думаете, что все кулхацкеры мастерят через I2P, цепь прокси с помощью машины на линуксе — вы зря так думаете. В основном это действительно скучающая школота.

Из недостатков — чем больше сайт и чем популярнее движок, тем больше сыплется мэйлов. Особенно если какой-то дятел напишет скрипт, посылающий запросы, который долбится в одну и ту же закрытую дверь. Но для чего-то небольшого это оказалось простой, но весёлой фиговинкой.

@темы: Apache, PHP, Советы и Секреты

Комментарии
2011-05-24 в 21:15 

--==SS==--
Sanctus Satanas
Надо обязательно натравить туда скрипт, который будет стучаться на /admin, подставлять заголовок X-Forwarded-For с рандомным IP (или каким-нибудь мусором) и делать это много-много-много раз. ;)

2011-05-24 в 23:00 

Faultier
Мизантроп-альтруист
Такого пока что не было. Но спасибо за подсказку, надо будет как-нибудь дописать, чтобы сравнивал пары REMOTE_ADDR и HTTP_X_FORWARDED_FOR. Правда с привязкой к бд это уже перестанет быть «крайне простой, написанной на коленке» фиговинкой. :)

2011-05-25 в 21:35 

unsigned
мы так воодушевлены, что светимся
--==SS==-- ещё можно встроить в X-Forwarded-For потенциальный XSS :) Мало ли, вдруг самописный почтовый веб-интерфейс.

2011-09-21 в 17:19 

Reuniko
статистику в базу и все дела... в идеале- в базе вообще все запросы к серверу, там же можно будет на инжекты полюбоваться...)

2012-03-01 в 04:04 

Если школьник додумается поместить свою ломалку в цикл, то получите пару тысяч писем на мыло))))
У меня проще, любое прямое обращение к данной папке вешает бан по ip и сохраняет в лог фаил находящийся в корне сайта.

URL
   

Сообщество PHP программистов

главная