1С-Битрикс единственная система в которой есть модуль проактивной защиты. Он включает в себя:
При активации этого метода защиты Вы указываете параметры при которых сессия пользователя будет заблокирована и запись о нем попадет в журнал. Например если пользователь за 10 секунд сделает 30 хитов то его сессия будет заблокирована, а отчет о нем попадет администратору сайта и вместо контента Вашего сайта будет отображена ошибка 503 с сообщением, что доступ запрещен.
Но при включении данного метода защиты не исключена ситуация когда под блокировку попадают не "роботы", а люди. В стандартном варианте нет способа самому снять данную блокировку и продолжить просматривать контент Вашего сайта тем самым мы теряем пользователей которые разочаровавшись просто уйдут с вашего сайта.
Чтобы этого не случилось мы в своих проектах использовали технологию Google reCAPTCHA для проверки и отключения блокировки у пользователей сайта.
На текущий момент Google reCAPTCHA имеет весьма дружелюбный для пользователя интерфейс. Она не просит Вас распознать какой-то текст, или цифру. Это крайне не удобно и возможна куча ошибок. Минимум, что Google reCAPTCHA может попросить от Вас это поставить галочку, что Вы не робот:
Или предложит Вам выбрать картинки с изображением например апельсина.
Легко и удобно. Но как же данный функционал включить в свой проект? Так-же легко.
(Предположим у Вас уже есть акаунт на Google, если нет то идет регистрировать)
Авторизуемся на сайте после чего идем по ссылке:
Нам предлагают зарегистрировать наш сайт в системе reCAPTCHA. Процесс регистрации довольно прост:
Ключи мы получили идет теперь на наш сайт.
Корректировка страницы блокировки.
В системе 1С-Битрикс в папке /bitrix/ есть файл activity_limit.php в котором и лежит шаблон страницы отображаемой при блокировке пользователя. Вы можете включить в нее свой дизайн сайта, или сформировать новый шаблон именно для страницы блокировки. (этап подготовки интерфейса мы пропустим т.к. у каждого будет свой подход к тому как оформить эту страницу)
После того как мы подготовили основной интерфейс страницы займемся подключением модуля Google reCAPTCHA для этого в тело HTML документа до тэга </head> нам надо вставить JS скрипты Google
В тело документа мы добавляем форму проверки и указываем в ней наш публичный ключ для формирования Google reCAPTCHA:
Action у формы мы специально оставили пустым чтобы отправка выполнилась в этот-же файл.
Метод проверки и разблокировки.
И можно в HTML теле файла сделать тоже сообщение об удачном прохождении проверки:
Данную страницу можно усилить кодом по автоматической полной блокировки IP адреса в случае частых срабатываний блокировки сессии для защиты от назойливых роботов.
Но вне зависимости от того прошел пользователь проверку или нет Вы получите отчет о том, что к нему были применены меры по блокировке его сессии. Предоставят возможность проанализировать самому последние его хиты в момент блокировки и у Вас будет возможность при необходимости занести его IP адрес в лист блокировки.
Надеюсь моя форма поможет Вам сократить число "роботов" на Ваших сайтах.
P.S. Не бойтесь, что поисковые системы попадут под блокировку. Для них есть в системе специальные методы по которым хиты поисковых системы не будут учитываться и индексация Вашего сайта не пострадает.
- Проактивный фильтр (Web Application Firewall*) обеспечивает защиту от большинства известных атак на веб-приложения
- Веб-антивирус - система противодействия заражениям сайтов
- Двухэтапная авторизация
- Контроль целостности файлов
- Защита административной части с доступом к ней только с определенных IP адресов
- Защита сессий
- Защита редиректов от фишинга
- Защита от фреймов
- Контроль активности
| Контроль активности позволяет установить защиту от чрезмерно активных пользователей, программных роботов, некоторых категорий DDoS-атак, а также отсекать попытки подбора паролей перебором. |
При активации этого метода защиты Вы указываете параметры при которых сессия пользователя будет заблокирована и запись о нем попадет в журнал. Например если пользователь за 10 секунд сделает 30 хитов то его сессия будет заблокирована, а отчет о нем попадет администратору сайта и вместо контента Вашего сайта будет отображена ошибка 503 с сообщением, что доступ запрещен.
Но при включении данного метода защиты не исключена ситуация когда под блокировку попадают не "роботы", а люди. В стандартном варианте нет способа самому снять данную блокировку и продолжить просматривать контент Вашего сайта тем самым мы теряем пользователей которые разочаровавшись просто уйдут с вашего сайта.
Чтобы этого не случилось мы в своих проектах использовали технологию Google reCAPTCHA для проверки и отключения блокировки у пользователей сайта.
На текущий момент Google reCAPTCHA имеет весьма дружелюбный для пользователя интерфейс. Она не просит Вас распознать какой-то текст, или цифру. Это крайне не удобно и возможна куча ошибок. Минимум, что Google reCAPTCHA может попросить от Вас это поставить галочку, что Вы не робот:
Или предложит Вам выбрать картинки с изображением например апельсина.
Легко и удобно. Но как же данный функционал включить в свой проект? Так-же легко.
(Предположим у Вас уже есть акаунт на Google, если нет то идет регистрировать)
Авторизуемся на сайте после чего идем по ссылке:
Нам предлагают зарегистрировать наш сайт в системе reCAPTCHA. Процесс регистрации довольно прост:
- Указываем название вашего сайта
- Указываем домены для которых будет использоваться reCAPTCHA. (По одному домену на одну строку)
- Указываем владельца. (Тут указываем Вашу учетную запись на GMail например: )
Ключи мы получили идет теперь на наш сайт.
Корректировка страницы блокировки.
В системе 1С-Битрикс в папке /bitrix/ есть файл activity_limit.php в котором и лежит шаблон страницы отображаемой при блокировке пользователя. Вы можете включить в нее свой дизайн сайта, или сформировать новый шаблон именно для страницы блокировки. (этап подготовки интерфейса мы пропустим т.к. у каждого будет свой подход к тому как оформить эту страницу)
После того как мы подготовили основной интерфейс страницы займемся подключением модуля Google reCAPTCHA для этого в тело HTML документа до тэга </head> нам надо вставить JS скрипты Google
<sc ript src='https://www.google.com/recaptcha/api.js?hl=ru'></sc ript> |
В тело документа мы добавляем форму проверки и указываем в ней наш публичный ключ для формирования Google reCAPTCHA:
<fo rm action="" method="post"> <div class="g-recaptcha" data-sitekey="Публличный_ключ"></div> <br/> <input type="submit" class="btn btn-system" value="Подтвердить"> </form> |
Action у формы мы специально оставили пустым чтобы отправка выполнилась в этот-же файл.
Метод проверки и разблокировки.
<?
if (isset($_REQUEST["g-recaptcha-response"])) //Если мы получили хеш проверки с формы
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); //Подключаем ядро Битрикса
$request = new \Bitrix\Main\Web\HttpClient(); //Создает объект HttpClient
//Формируем запрос на проверку в Google
$post = $request->post("https://www.google.com/recaptcha/api/siteverify", Array(
"secret" => "Секретный_ключ", //Наш секретный ключ от Google
"response" => $_REQUEST["g-recaptcha-response"], //Сам хеш с формы
"remoteip" => $_SERVER["REMOTE_ADDR"] //IP адрес пользователя проходящего проверку
));
$post = json_decode($post); //Декодируем ответ от Google
if ($post->success == 'true') //Если проверка прошла удачно
{
$_SESSION["SESS_GRABBER_STOP_TIME"] = ""; //Очищаем ключ блокировки в сессии
}else{
//Выполняем действие если не прошел проверку на reCAPTCHA
}
}
?> |
И можно в HTML теле файла сделать тоже сообщение об удачном прохождении проверки:
<?if ($post->success == 'true'){?>
<h2>Поздравляем, Вы не робот.</h2>
<a class="btn btn-system" href="<?=$APPLICATION->GetCurPageParam("", array("g-recaptcha-response"))?>">Обновить страницу</a>
<sc ript type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
window.location.replace('<?=$APPLICATION->GetCurPageParam("", array("g-recaptcha-response"))?>');
window.location.reload();
});
</sc ript>
<?}?>
|
Данную страницу можно усилить кодом по автоматической полной блокировки IP адреса в случае частых срабатываний блокировки сессии для защиты от назойливых роботов.
Но вне зависимости от того прошел пользователь проверку или нет Вы получите отчет о том, что к нему были применены меры по блокировке его сессии. Предоставят возможность проанализировать самому последние его хиты в момент блокировки и у Вас будет возможность при необходимости занести его IP адрес в лист блокировки.
Надеюсь моя форма поможет Вам сократить число "роботов" на Ваших сайтах.
P.S. Не бойтесь, что поисковые системы попадут под блокировку. Для них есть в системе специальные методы по которым хиты поисковых системы не будут учитываться и индексация Вашего сайта не пострадает.