- Как запретить доступ с определенного домена
- Как закрыть доступ к сайту с определенного домена
- Запрет доступа на PHP
- Запрет доступа с определенного домена в htaccess
- Как закрыть доступ к сайту с определенного IP
- Запрет на доступ к сайту по IP при помощи PHP
- Запрет на доступ определенных пользователей в htaccess
- Также читайте:
Привет, ребят! Проблема защиты сайта стоит очень остро в наше время. Я убедился в этом на собственном опыте. Только я запускаю сайт в интернет, он автоматически становится мишенью для всяких хакеров, спамеров и роботов. Поэтому теперь первое о чем я думаю, создавая сайт, это то, как его защитить.
Одним из способов защиты является ограничение доступа к сайту по ip или домену. Например, вы заметили, что ваш сайт атакует один и тот же адрес. Логичным будем просто запретить этому негодяю попадать на ваш сайт. В этой статье расскажу, как закрыть доступ к сайту по ip с помощью htaccess и php.
Как запретить доступ с определенного домена
Для этой цели существует ни один вариант. Так что вы сможете выбрать наиболее удобный для вас.
Как закрыть доступ к сайту с определенного домена
Запрет доступа на PHP
Допустим нужно запретить доступ к сайту для тех кто приходит по ссылкам с определенного домена.
Откройте файл index.php в корне вашего сайта или если это WordPress то header.php, находящийся в папке с активной темой.
В самом начале файла вставьте следующий код:
<?php if( strpos( $_SERVER['HTTP_REFERER'], 'Вредный_сайт.com' ) !== FALSE){ print 'Вы пришли с Вредный_сайт.com - доступ к сайту с этого домена запрещен!'; exit(); } ?>
Это код ограничит доступ к вашему сайту тем у кого в значении referer будет стоять домен, на который вы накладываете запрет и покажет только надпись, что сайт недоступен.
Есть более интересный вариант. Код ниже наложит запрет к сайту с определенного домена и перенаправит на нужную вам страницу.
<?php if( strpos( $_SERVER['HTTP_REFERER'], 'Вредный_сайт.com' ) !== FALSE){ header('Location: http://Нужная_страница'); exit(); } ?>
Запрет доступа с определенного домена в htaccess
Еще один вариант, чтобы ограничить доступ к сайту с определенного домена это команда в файле htacces. Этот файл находится в корневой папке сайта. Откройте его и добавьте следующий код, который запретит доступ к сайту:
RewriteCond %{HTTP_REFERER} ^http://www\.Вредный_сайт\.(.*) [NC] RewriteRule .* - [F]
Так то! Теперь доступ к вашему сайту с плохих доменов закрыт.
Второй способ направит нарушителя на путь истинный 🙂 Редирект дамы и господа!
RewriteCond %{HTTP_REFERER} ^http://www\.Вредный_сайт\.(.*) [NC] RewriteRule ^/$ http:///Правильный_адрес
Как закрыть доступ к сайту с определенного IP
Запрет на доступ к сайту по IP при помощи PHP
При необходимости запретить доступ к сайту с определенного ip откройте файл index.php или файл header.php , вообще тот файл с которого начинается вывод страницы. В самом начале пропишите такой php код:
<?php if($_SERVER['REMOTE_ADDR'] == "xxx.xxx.xxx.xxx"){ echo "Мы против спама!"; } ?>
Запрет на доступ определенных пользователей в htaccess
Рассмотрим способ, как ограничить доступ к сайту с определенного ip в файле htaccess.
Для того, чтобы закрыть сайт для доступа определенному пользователю или группе пользователей, нужно открыть файл htaccess и добавить туда следующие строки:
Order Allow,Deny Allow from All Deny from xxx.xxx.xxx.xxx //вместо xxx естественно ip
Однако, если есть несколько ip, которым нужно запретить доступ, то IP адреса записываем, через запятую:
Order Allow,Deny Allow from All Deny from xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz
Точно также можно закрыть доступ к сайту для диапазона ip, прописываем в файле лишь первые цифры ip:
Order Allow,Deny Allow from All Deny from xxx.xxx.xxx
То есть будет ограничен доступ к сайту для всех IP с xxx.xxx.xxx.1 до xxx.xxx.xxx.255.
Например, если в основном аудитория вашего сайта русскоязычная, то можете запретить доступ по ip зонам для стран Африки, Юго-Восточной Азии, Южной Америки и Карибского бассейна, а также некоторых корпораций и учреждений. Для этого добавьте следующий код в файл htaccess
Order Deny,Allow # AfriNIC: Deny from 41 102 105 197 # APNIC: Deny from 1 14 27 36 39 Deny from 42.0.0.0/7 Deny from 49 Deny from 58.0.0.0/7 Deny from 60.0.0.0/7 Deny from 101 103 106 Deny from 110.0.0.0/7 Deny from 112.0.0.0/5 Deny from 120.0.0.0/6 Deny from 124.0.0.0/7 Deny from 126 133 175 180 Deny from 182.0.0.0/7 Deny from 202.0.0.0/7 Deny from 210.0.0.0/7 Deny from 218.0.0.0/7 Deny from 220.0.0.0/6 # LACNIC: Deny from 177 179 181 Deny from 186.0.0.0/7 Deny from 189 Deny from 190.0.0.0/7 Deny from 200.0.0.0/7 # Networks: Deny from 3 6 9 11 13 15 Deny from 16.0.0.0/6 Deny from 20.0.0.0/7 Deny from 22 25 26 Deny from 28.0.0.0/7 Deny from 30 33 Deny from 34.0.0.0/7 Deny from 38 40 44 47 48 Deny from 51 Deny from 52.0.0.0/6 Deny from 56.0.0.0/7 Deny from 214.0.0.0/7
Также в этом списке присутствуют ip из смешанных зон, но этот код защищает сайт от большего количества непрошеных гостей. IP адреса ARIN лучше не блокировать, а то роботы поисковиков типа Bing, Google, Yahoo не смогут заходить на ваш сайт и соответственно индексации вы никакой не получите.
Ну и напоследок, есть вариант перенаправления посетителей с этих ip на нужную страницу. Это может быть страница на которой например написано, что доступ закрыт:
SetEnvIf REMOTE_ADDR xxx.xxx.xxx.xxx REDIR="redir" RewriteCond %{REDIR} redir RewriteRule ^/$ http:///Нужная_страница
На самом деле все не так сложно как кажется! Попробуйте эти методы и ваш сайт станет более защищенным.
Пишите комментарии, если что-то непонятно или просто понравилась статья
Рекомендую подписаться на мою рассылку, чтобы не пропустить самых важных новостей
С уважением,
Артем Губтор
Также читайте:
Подборка самых нужных плагинов для блога WordPress
Что такое карта сайта и зачем она нужна
Как стать php программистом с нуля до уровня профессионала?