Всем Привет! Эта статья будет посвещена тому, как защитить сайт от ботов сканеров, парсеров контента, переходов с ненужных нам ресурсов! В сети предлагаются чёрные списки юзерагентов ботов для внесения их в файл .htaccess. Здесь я применю куда более эффективнее белый список, что бы постоянно не пополнять списки, нужно создать список разрешённых юзерагентов, с которых можно будет входить на сайт. В этом примере я добавлю поисковых роботов Google и Yandex, и пользовательские популярные браузеры. фильтровать ботов будем по значению: YandexНазваниеБота браузеры пользователей я отфильтрую по окончанию, которое содержится в useragent строке браузеров. пример на useragentе поискового бота: пример на пользовательском useragente: пропишем маску, например для нужных ботов yandex, перечислять будем в скобках окончания, разделяя их знаком | PHP: ### белый список ботов и браузеров для .htaccess RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !googlebot [NC] RewriteCond %{HTTP_USER_AGENT} !Google-StructuredDataTestingTool [NC] RewriteCond %{HTTP_USER_AGENT} !Yandex(Bot|Metrika|Favicons|Webmaster|Pagechecker|Antivirus|Images|Video|Media) [NC] ### список пользовательских браузеров RewriteCond %{HTTP_USER_AGENT} !MSIE [NC] RewriteCond %{HTTP_USER_AGENT} !opera [NC] RewriteCond %{HTTP_USER_AGENT} !firefox [NC] RewriteCond %{HTTP_USER_AGENT} !safari [NC] RewriteCond %{HTTP_USER_AGENT} !chrome [NC] ###ошибка 403 - доступ к которой нужно разрешить всем, иначе страница не будет показана и скрипт лога не загрузится RewriteCond %{REQUEST_URI} !^/403.php.*$ RewriteRule ^.* - [F,L] ### можно послать если useragent не совпал например на другой сайт: #RewriteRule /*$ /close1/redirect.php [L,R] Составим список разрешённых адресов - с которых можно переходить на сайт. Важно: нужно обязательно прописать свой сайт в списке для возможности переходить по страницам своего сайта. Можно использовать маски - и прописать региональные домены, и поддомены. PHP: ### белый список ссылок от куда можно переходить на сайт, referer для .htaccess RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ # список разрешенных доменов RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?(encrypted.)?google(.ru|.com|.org|.de|.com.ua|.ua|.by|.kz) [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex(.ru|.com|.ua|.by|.kz) [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ya(.ru|.com|.ua|.by|.kz) [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?(forum)?antichat.ru [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?(site.)?mysite.com [NC] ###ошибка 403 RewriteCond %{REQUEST_URI} !^/403.php.*$ RewriteRule ^.* - [F,L] ### можно послать если referer не совпал например на другой сайт или поддомен: #RewriteRule /*$ /close/redirect.php [L,R] Спасибо за внимание! GAiN®, antichat 2014