Košarica (0)
  • Vaša košarica je trenutno prazna

NEOSERV BLOG

Novice in nasveti iz sveta domen, gostovanja, SSL certifikatov, spletnih strani, spletnih trgovin in ostalih področij spleta.

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:

  1. Kako blokirati dostop posameznim obiskovalcem?
  2. Kako blokirati dostop vsem, razen sebi?
  3. Kako blokirati dostop celotni državi?
  4. Kako obiskovalce določene države preusmeriti na izbrano spletno stran?

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:

Deny from 95.31.18.119

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:

Deny from 95.31.18

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:

Order deny,allow
Deny from 89.212.161
Allow from 89.212.161.82

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 le tremi vrsticami kode v .htaccess boste do svoje spletne strani lahko dostopali le vi sami. Uporabite naslednji ukaz:

Order deny,allow
Deny from all
Allow from vaš_IP

V zadnji vrstici zapis »vaš_IP« 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 prej omenjenih držav, bi vanjo dodali naslednji ukaz:

GeoIPEnable On
 
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE UA BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
 
Allow from all
Deny from env=BlockCountry

Kaj pa, če bi želeli dostop onemogočiti vsem, razen izbranim državam? V tem primeru bi v .htaccess dodali naslednje:

GeoIPEnable On
 
SetEnvIf GEOIP_COUNTRY_CODE SI AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE HR AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
 
Deny from all
Allow from env=AllowCountry

Celotno tabelo dvočrkovnih oznak posameznih držav si lahko ogledate tukaj.

Kako obiskovalce določene države preusmeriti na izbrano spletno stran?

Zdaj pa si oglejmo še primer, ki se v praksi pojavlja najpogosteje. Predpostavimo, da imate registrirane tri domene:

  • vasadomena.si,
  • vasadomena.de,
  • vasadomena.com.

Na vseh imate postavljene spletne strani, vendar v različnih jezikih – slovenščini, nemščini in angleščini. Prva spletna stran je namenjena prebivalcem Slovenije, z drugo ciljate na nemško govoreče prebivalstvo, s tretjo pa želite doseči vse ostale uporabnike spleta, ki govorijo angleško.

Vaš cilj je, da obiskovalcem prikažete ustrezno spletno stran glede na to, iz katere države prihajajo. Morda zato, ker imate za nemško govoreče prebivalstvo prilagojene nekoliko višje cene, morda pa zgolj zato, da tuji uporabnik ne bi nikakor mogel zaiti na stran v slovenščini.

Tudi v takšni situaciji si lahko elegantno pomagate s pravilom, ki ga vpišete v datoteko .htaccess. Za zgoraj opisan primer bi dodali naslednje:

<IfModule mod_geoip.c>
 
GeoIPEnable On
 
RewriteCond %{HTTP_HOST} (.*)?vasadomena\.(com|de) [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SI$
RewriteRule ^(.*)$ https://www.vasadomena.si/$1 [R,L]
 
RewriteCond %{HTTP_HOST} (.*)?vasadomena\.(si|com) [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(DE|AT|CH)$
RewriteRule ^(.*)$ https://www.vasadomena.de/$1 [R,L]
 
RewriteCond %{HTTP_HOST} (.*)?vasadomena\.(si|de) [NC]
RewriteRule ^(.*)$ https://www.vasadomena.com/$1 [R,L]
 
</IfModule>

Naj zgornjo .htaccess kodo na kratko razložimo. Če bi uporabnik spleta iz Slovenije želel obiskati domeno .com ali .de, bi bil samodejno preusmerjen na .si. Če bi uporabnik z nemškim, avstrijskim ali švicarskim IP naslovom poskusil obiskati spletno stran na domeni .si ali .com, bi bil preusmerjen na .de. Vsi ostali uporabniki spleta pa bi bili z domen .si in .de preusmerjeni na domeno .com.

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

KOMENTIRAJTE OBJAVO

(obvezno)
(obvezno, e-poštni naslov bo skrit)
(neobvezno)
Varnostno vprašanje, ki potrdi, da ste resnična oseba.