Как запретить доступ на ваш сайт в различных ситуациях?

plock website variables - Как запретить доступ на ваш сайт в различных ситуациях?

Для запрета перехода на ваш сайт с других сайтов существует специальная команда — referer. Она позволяет получить адрес сайта, с которого сделан переход на ваш сайт (vk, twitter, yandex, google, прочие). Есть вариант применения как на php, так и при помощи .htaccess

Блокировка на PHP

<?php
if($_SERVER['HTTP_REFERER'] == 'запретный_адрес'){
echo ' текст для вывода ошибки!';
exit();
}
?> 
<?php
if($_SERVER['HTTP_REFERER'] == 'запретный_адрес'){
header('Location: адрес отправки');
exit();
}
?>

В первом варианте, например, если поставить запрет на Яндекс — выведет текст, который вы сами и напишите. Во втором — перенаправит на другой адрес, который вы тоже сами напишите.

Блокировка через сервер в .HTACCESS

RewriteCond %{HTTP_REFERER} ^http://www\\.запретный_адрес\\.(.*) [NC]
RewriteRule .* - [F]
RewriteCond %{HTTP_REFERER} ^http://www\\.запретный_адрес\\.(.*) [NC]
RewriteRule ^/$ http://адрес отправки/

Примеры аналогичные и на php, но в первом случае будет перенаправлять по 403-й ошибке forbidden, т.е. ее можно сделать и самому!

Блокировка по IP адресу

В файл .htaccess внесите запись ниже. Если нужно заблокировать какую нибудь внутреннюю папку в глубине от корня сайта, то закиньте туда файл .htaccess с записью о блокировке. Способ малоэффективен т.к. есть прокси, есть анонимайзеры или как у меня – динамический IP. Но все же стоит привести парочку примеров:

Order Allow,Deny
Allow from All 
Deny from xxx.xxx.xxx.xxx
Order Allow,Deny
Allow from All 
Deny from xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz

В первом случае вы блокируете определенный ip, во втором – через запятую вводите список из нескольких ip

Полная блокировка

При помощи .htaccess можно заблокировать нужные нам разделы, просто поместив в него данный файл со следующим содержимым.

Order Deny,Allow 
Deny from all

ErrorDocument 403 http://ваш-адрес_сайта/403.php
ErrorDocument 404 http://ваш-адрес_сайта/404.php

Options-Indexes

Order deny… – блокирует доступ к этой папке для всех и выводит надпись forbiddden (т.е. ошибку 403)
Options-Indexes – если нет индексного файла – не дает вывести листинг и тоже отправляет на 403

Похожие записи


SEO и внешние ссылки: три способа скрыть ссылки на другие сайты
Внешняя ссылка для SEO является нежелательны элементом на любой странице сайта. Она передает часть веса вашего сайта на тот ресурс,...
PHP — простой ротатор баннеров, ротатор для DLE и WordPress
Аналог на javascriptАналог на PHP для больших кодов Очень простой ротатор кода на PHP. Сначала мы объявляем простой двумерный массив...
Как и где лучше всего изучать программирование на языке PHP
PHP — это серверный язык программирования со своими плюсами и минусами. Его давно хоронят, но он прочно закрепился в своей...
Где найти полезные материалы для изучения языков программирования?
В современном мире практически каждый человек может ощутить на себе серьезное влияние технологий. Технические средства начинают внедряться практически во все...
Laravel — стоит ли связываться с PHP фреймворком в 2020?
Laravel — масштабный PHP фреймворк, который отлично подойдет для повышения навыков разработки на данном языке и будет хорошей альтернативой не...

4 комментария на «“Как запретить доступ на ваш сайт в различных ситуациях?”»

  1. 1. Запрет перехода на сайт с определенных сайтов. Работает все нормально…но у меня есть вопросы ..

    1)А если мне нужно запретить несколько адресов ? то мне ставить несколько таких кодов ?

    2) И запретить адрес с www и без него тоже нужно 2 кода вставлять ?

    Может подскажите как можно это реализовать вставляя как можно меньше кодов ?

    спасибо

  2. Цитата: crutilka
    Может подскажите как можно это реализовать вставляя как можно меньше кодов ?

    Можно при помощи PHP проинклудить специально созданный для этих целей файл с таким вот кодом:

    
    <?php
    if( strpos( $_SERVER['HTTP_REFERER'], 'запретный_адрес' ) !== FALSE){
    print ' текст для вывода ошибки!';
    exit();
    }
    ?>

    где просто через запятую перечислять проблемные адреса. В любом случае каждое исключение придется записывать! В движках для таких случаев есть просто поле для ввода. Прописал и нажал ОК

    • Ссылочную массу можно самостоятельно размещать бесплатно,в комплекте есть
      парсер

Добавить комментарий