- Vaša košarica je trenutno prazna
Kako blokirati dostop do spletne strani s .htaccess?
Se sprašujete, zakaj bi želeli komurkoli preprečiti dostop do svoje spletne strani? Ali ni bolje, da za vašo stran izve čim več ljudi, saj si s tem povečate verjetnost za njeno uspešnost? To žal ne drži povsem. Vedeti namreč morate, da vašo stran lahko obiščejo tudi razni hekerji, slabi boti in avtomatizirane skripte, ki samodejno izpolnjujejo kontaktne obrazce, puščajo nezaželene komentarje, zbirajo e-naslove za pošiljanje »spam« pošte in podobno.
Glavni razlogi za preprečevanje dostopa nezaželenih obiskovalcev so naslednji:
- večja varnost,
- manjša obremenitev strežnika,
- boljši nadzor nad obiskovalci.
Zadržimo se še nekoliko pri naštetih razlogih. Če zaznate, da se nekdo na vaši strani obnaša sumljivo ali zlonamerno (npr. se poskuša vpisati v vaš CMS sistem), mu je takšno početje smiselno onemogočiti. V primeru, da strežnik, s tem pa tudi vašo spletno stran bremeni in upočasnjuje množično obiskovanje ruskih botov, lahko blokirate celotno državo. In nenazadnje, če zaradi podobnega početja trpi kakršen koli nadzor (npr. nad spletno analitiko ali javljanjem napak v temu namenjenem programu), je preprečevanje dostopa do spletne strani prav tako zelo uporabno.
Za blokiranje dostopa nezaželenih obiskovalcev obstaja preprosta rešitev. Dodati je potrebno le nekaj vrstic kode v datoteko .htaccess, ki se nahaja v krovni mapi vaše spletne strani. Več o tem, kje najdete omenjeno datoteko in kako jo urejate, si lahko preberete na tej povezavi.
V nadaljevanju vam bomo predstavili:
- Kako blokirati dostop posameznim obiskovalcem?
- Kako blokirati dostop vsem, razen sebi?
- Kako blokirati dostop celotni državi?
Imate postavljenih več spletnih strani, vsako v svojem jeziku in na svoji domeni? Če vas zanima, kako obiskovalce iz določene države preusmeriti na točno določeno domeno v vaši lasti, pa boste navodila za to našli v tem prispevku.
Kako blokirati dostop posameznim obiskovalcem?
Posamezne obiskovalce ali bote, ki jim ne želite omogočiti dostopa do svoje strani, blokirate na podlagi njihovih IP naslovov. Dostop torej lahko preprečite le enemu IP-ju ali celotnemu spektru. Prav tako lahko blokirate celoten spekter IP naslovov z določenimi izjemami.
Ponazorimo vse tri možnosti v praktičnih primerih.
1. Ugotovili ste, da uporabnik IP-ja 95.31.18.119 na vašem blogu neprestano oddaja nezaželene komentarje s sumljivimi povezavami. V tem primeru povsem na vrh datoteke .htaccess dodajte naslednji zapis:
# BEGIN Block IP address
<RequireAll>
Require all granted
Require not ip 95.31.18.119
</RequireAll>
# END Block IP address
2. Zdaj pa ste ugotovili, da nezaželeni komentarji prihajajo z različnih IP-jev, ki se ločijo po zadnjem zaporedju števil: 95.31.18.111, 95.31.18.125, 95.31.18.149, 95.31.18.205 itd. Celoten rang IP naslovov lahko blokirate z naslednjim ukazom:
# BEGIN Block IP zone
<RequireAll>
Require all granted
Require not ip 95.31.18
</RequireAll>
# END Block IP zone
3. Pojavi se lahko tudi situacija, ko bi želeli blokirati celoten spekter IP naslovov, razen točno določenega (ali več) v prav tem območju. Z ukazom v .htaccess datoteki je mogoče poskrbeti tudi za takšen primer:
# BEGIN Block IP range with exceptions
<RequireAny>
<RequireAll>
Require not ip 123.123.123.
</RequireAll>
# Excluded IP addresses
Require ip 123.123.123.100
Require ip 123.123.123.101
</RequireAny>
# END Block IP range with exceptions
Ko boste v .htaccess želeli dodati blokado, se najprej prepričajte, da ukaz zagotovo deluje. To boste najlažje preverili kar s svojim IP naslovom (Deny from vaš_IP). Če boste ugotovili, da blokada ne deluje, v .htaccess dodajte še vrstico ErrorDocument 403 default.
Kako blokirati dostop vsem, razen sebi?
Včasih se lahko pojavi potreba po tem, da dostop do strani zagotovite le sebi, vsem drugim pa ga onemogočite. Eden izmed razlogov za takšno nastavitev je denimo povezan s testiranjem novih funkcionalnosti spletne strani.
Morda imate sami povsem drug razlog. Kakorkoli že, z naslednjimi vrsticami kode v .htaccess boste do svoje spletne strani lahko dostopali le vi sami (predpostavimo, da je vaš IP naslov 51.38.64.208. Uporabite naslednji ukaz:
# BEGIN Allow access to wp-admin for IPs
<IfModule mod_maxminddb.c>
<FilesMatch "(wp-login)\.php$">
Require all granted
RewriteCond %{REMOTE_ADDR} !(51.38.64.208)
RewriteRule ^ - [F,L]
</FilesMatch>
</IfModule>
# BEGIN Allow access to wp-admin for IPs
V zadnji vrstici testni IP naslov zamenjajte s svojim dejanskim IP naslovom. Ne veste, kako ugotoviti, kateri IP naslov vam je dodeljen? Še najhitreje boste to ugotovili tako, da v Google vpišete »My IP Address« in kliknete na katerega izmed zadetkov. Lahko kar na prvega.
Ste še včeraj lahko brez težav dostopali do svoje strani, danes pa ste naleteli na napis »Forbidden« (napaka 403)? Po vsej verjetnosti vam je ponudnik interneta ob ponovni povezavi dodelil nov IP naslov. Če je vaš IP dinamičen, boste morali .htaccess prilagajati.
Kako blokirati dostop celotni državi?
Rusija, Ukrajina in Kitajska so le nekatere izmed držav, katerim vse več administratorjev želi preprečiti dostop do svojih spletnih strani. Gre namreč za države, ki so pravo leglo hekerjev, raznih botov ter zlonamernih ali nezaželenih avtomatiziranih skript, s katerimi se njihovi avtorji želijo okoristiti na takšen ali drugačen način.
Z direktivo v datoteki .htaccess je mogoče blokirati obisk iz celotne države. Pravzaprav moramo biti pri tej trditvi previdni, saj so IP-ji posameznih držav shranjeni v tako imenovanih GeoIP bazah, ki pa niso 100-odstotno natančne. Težave se pojavljajo predvsem pri brezplačnih bazah, saj pogosto ostajajo neposodobljene. Lahko se torej zgodi, da je IP iz Rusije zaznan kot IP iz Slovenije ali obratno.
Pri NEOSERV uporabljamo licenčne (plačljive) GeoIP baze, ki z rednim posodabljanjem zagotavljajo visoko stopnjo natančnosti. Za blokiranje IP naslovov seveda lahko uporabite tudi svojo bazo, opozarjamo pa vas, da se brezplačnim bazam raje izogibate.
Če bi z datoteko .htaccess želeli blokirati obiskovalce iz določenih držav, bi vanjo dodali naslednji ukaz:
# BEGIN Disallow specified countries
<IfModule mod_maxminddb.c>
MaxMindDBEnable On
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE VN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE HK BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE BR BlockCountry
<RequireAny>
<RequireAll>
Require all granted
Require not env BlockCountry
</RequireAll>
</RequireAny>
</IfModule>
# END Disallow specified countries
Kaj pa, če bi želeli dostop onemogočiti vsem, razen izbranim državam? V tem primeru v .htaccess dodajte eno izmed naslednjih dveh kod.
# BEGIN Allow specified countries
<IfModule mod_maxminddb.c>
MaxMindDBEnable On
SetEnvIf GEOIP_COUNTRY_CODE SI AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE HR AllowCountry
<RequireAny>
<RequireAll>
Require all granted
Require env AllowCountry
</RequireAll>
</RequireAny>
</IfModule>
# END Allow specified countries
# BEGIN Allow specified countries
<IfModule mod_maxminddb.c>
MaxMindDBEnable On
SetEnvIf GEOIP_COUNTRY_CODE SI AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE HR AllowCountry
Deny from all
Allow from env=AllowCountry
</IfModule>
# END Allow specified countries
Celotno tabelo dvočrkovnih oznak posameznih držav si lahko ogledate tukaj.
Ste ob urejanju datoteke .htaccess naleteli na težave? Vam blokada dostopa do spletne strani ne deluje, vendar ne veste, v čem točno je problem? Pri NEOSERV vam bomo z veseljem pomagali!
KOMENTARJI
Dodatna vprašanja?
KOMENTIRAJTE OBJAVO
Vaš komentar je bil uspešno oddan
Komentar bo viden na strani, ko ga naši moderatorji potrdijo.