.htaccess to plik, który może zawierać reguły m.in. zezwalające lub odmawiające dostępu do Twojej witryny lub folderu, czy plików w katalogu, w którym jest umieszczony, używając słów kluczowych order, allow i deny.
Spis treści
Jak zezwolić na dostęp do pojedynczego adresu IP za pomocą .htaccess
W poniższym przykładzie założymy, że chcesz zezwolić na dostęp tylko do adresu IP 1.2.3.4. Kod, który będziesz musiał dodać w swoim pliku .htaccess to:
# Order Allow, Deny
Deny from All
Allow from 1.2.3.4
Słowo kluczowe Order określa tutaj kolejność, w jakiej będą przetwarzane polecenia allow, deny. Dla powyższej deklaracji ‘Order’, najpierw będą przetwarzane deklaracje Allow, a następnie deny.
Jak odmówić dostępu do pojedynczego adresu IP za pomocą .htaccess
Załóżmy, że chcesz odmówić lub zablokować dostęp do swojej witryny z adresu IP 1.2.3.4.
Poniższe linie dostarczają środków, aby umożliwić dostęp do Twojej strony wszystkim użytkownikom z wyjątkiem jednego z adresem IP: 1.2.3.4
# Order Allow, Deny
Deny from 1.2.3.4
Deny from 1.2.3.5
Allow from All
lub
# Order Deny, Allow
Deny from 1.2.3.4
Deny from 1.2.3.5
Jeśli istnieje wiele adresów IP, do których chcesz odmówić dostępu, po prostu dodaj tyle reguł ‘Deny from’ ile potrzebujesz.
Jak odmówić dostępu do ukrytych plików i katalogów
Ukryte pliki i katalogi (te, których nazwy zaczynają się od kropki .) powinny być w większości, jeśli nie w całości, zabezpieczone. Na przykład: .htaccess, .htpasswd, .git, .hg…
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\" - [F]
Alternatywnie możesz po prostu podnieść błąd “Not Found”, nie dając atakującemu żadnych wskazówek:
RedirectMatch 404 /...*$
Zabroń dostępu do kopii zapasowych i plików źródłowych
Te pliki mogą być pozostawione przez niektóre edytory tekstu/HTML (jak Vi/Vim) i stanowią duże zagrożenie bezpieczeństwa, jeśli są wystawione na widok publiczny.
<FilesMatch "(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$">
## Apache 2.2
Order allow,deny
Deny from all
Satisfy All
## Apache 2.4
# Require all denied
</FilesMatch>