Фільтр IP-адрес у .htaccess
Обмеження доступу по IP дозволяє швидко заборонити або обмежити доступ до сайту певним IP адресам або цілим підмережам.
Досить часто доводиться вдаватися до обмеження доступу або блокування трафіку за IP адресами. Ситуації можуть бути різні: від блокування паразитного трафіку і до надання доступу певним особам.
Обмеження доступу
Засобами файлу .htaccess можна обмежити доступ до ресурсів сайту за адресами IP; наприклад, дозволити доступ до архіву лише користувачам з локальної мережі, або заборонити будь-якому хосту або мережі доступ до будь-якого контенту.
Синтаксис для цих директив такий:
Order Deny,Allow
# (або Allow,Deny – в залежності від того, що потрібно)
Deny from all # (або адреса хоста)
Allow from all # (або адреса хоста)
Наприклад:
Order Deny,Allow
Deny from all
Allow from 192.168.0.
Allow from .localnet
Allow from admin.somewhere.net
Цей код заборонить доступ для всіх, крім мережі 192.168.0.0/24
, всіх хостів, DNS ім’я яких містить .localnet
, а також хоста, DNS ім’я якого admin.somewhere.net
.
Якщо потрібно заборонити доступ до групи хостів, використовується Allow,Deny
:
Order Allow,Deny
Allow from all
Deny from 192.168.1.
Deny from hackers.everywhere.net
За допомогою Order визначається порядок обробки правил allow/deny
; якщо ми візьмемо другий приклад, спочатку сервер обробить правило allow from all
, а потім хости, які пройшли це правило, піддаються перевірці правилом deny
; при цьому всі хости з мережі 192.168.1.0/24
та хост hackers.everywhere.net
не проходять цю перевірку і не отримують доступу.
Більш складні застосування:
<FilesMatch "\.(txt|dat)$">
Order Deny,Allow
Deny from all
</Files>
Наведене вище правило заборонить будь-яким хостам доступ до файлів з розширеннями .txt
і .dat
(наприклад, у них можуть зберігатися внутрішні дані скриптів).