Autor Zpráva
Kalixt23
Profil
Zdravím,

chcel by som sa spýtat ako zablokovat vstup určitých krajin na moju web stránku? napr. Rusko, Ukrajina, Rumunsko atd..

kukal som na pár stránkach no nejsom si istý čo by bolo lepšie videl som nejaké riešenia cez htaccses taktiež aj cez php.

takže zaujímalo by ma cez čo je to lepšie, jednoduchšie a ako to spravit? nejak som nikdy nemusel riešit blokovanie určitých krajin no v poslednom čase som mával plno registrácii od rusov aj ukrajincov ktorý robili nepovolené reklamy na mojej stránke, no a ja mam možnost v hostingu zablokovat všetky zahraničné krajiny no nemam možnost zablokovat len určité krajiny ktoré si vyberiem, pretože zopár užívatelov je aj z nemecka ktorým vstup na moju stranku zablokovat nechcem.
Keeehi
Profil
Úplně zablokovat je nejde. Můžeš jim to maximálně ztížit. Pokud ale použijí Tor, Proxy nebo VPN tak se ti tam stejně dostanou. A například použít Tor je v dnešní době možné jen pouhým nainstalováním upraveného Firefoxu - žádné technické znalosti nejsou potřeba.

čo by bolo lepšie videl som nejaké riešenia cez htaccses taktiež aj cez php.
Oboje je možné. Záleží spíš na tom, co je pro tebe jednodušší.
M4n
Profil *
Běžný postup je použít GeoIP, tedy databázi rozsahů IP a jejich geografických poloh. Zaměření na úroveň státu je takto poměrně přesné i u zdarma dostupných databází.

Obejít tuto detekci samozřejmě lze, jak už zmiňoval Keeehi.
Xanomes_
Profil *
Kalixt23:
Pokud jsi ochotný spolehnout se na zemi, kterou ti řekne sám uživatel (resp. jeho prohlížeč), pak to lze řešit přes PHP proměnnou $_SERVER['GEOIP_COUNTRY_CODE']. Ta vypisuje zemi jako zkratku (CZ, SK apod). Nicméně stejně jako jakákoliv jiná detekce země, jakýkoliv pokročilejší uživatel ji může snadno obejít, viz Keeehi.
M4n
Profil *
Xanomes:
Pokud jsi ochotný spolehnout se na zemi, kterou ti řekne sám uživatel (resp. jeho prohlížeč)
Prohlížeče nic takového neposílají.
4li1985
Profil
www.ip2location.com/blockvisitorsbycountry.aspx
Davex
Profil
4li1985:
Tento způsob blokování je značně neefektivní, protože velmi zatěžuje webserver zpracováním blokujících direktiv v .htaccess při každém HTTP požadavku.
M4n
Profil *
Není o nic méně efektivní než hledat IP adresu v souborové databázi od GeoIP.

Tuhle mantru o "zatěžování serveru skrze .htaccess", bych už radši opustil, protože si ji někdo před lety vycucal z prstu. Respektive nehraje žádnou roli, pokud není požadavků skutečně extrémní množství a direktivy nenapsala tlupa paviánů.
Keeehi
Profil
M4n:
a direktivy nenapsala tlupa paviánů
Což bude ale asi většinou pravda. Řekl bych, že většina kopírovačů vezme první kus kódu co kde najde a plácne to do htaccessu. Takže se jim to pak ověřuje třeba i na obrázcích a dalších souborech, což v tomto případě pravděpodobně nebude třeba.
Xanomes_
Profil *
M4n:
Dobře, možná to neposílá prohlížeč, ale někde se to bere, když taková proměnná existuje a dokonce vrací správné výsledky.
_es
Profil
M4n:
„Pokud jsi ochotný spolehnout se na zemi, kterou ti řekne sám uživatel (resp. jeho prohlížeč)“
Prohlížeče nic takového neposílají.
Prehliadač posiela zoznam jazykov, ktorým návštevník (možno) rozumie.
Xanomes_
Profil *
_es:
M4n odkazoval na mnou zmíněnou proměnnou $_SERVER['GEOIP_COUNTRY_CODE'], kterou jsem se domníval, že posílá sám prohlížeč, nicméně generuje se až na straně serveru, takže v tomto ohledu měl M4n pravdu. Co jsem o tom zjišťoval, PHP samo porovná nějakou svoji DB s IP a pokud najde zemi, ze které IP pochází, tak nastaví $_SERVER['GEOIP_COUNTRY_CODE'], jedná se tedy o stejné řešení, jako výše zmíněné databáze, jen je to jednodušší pro programátora - nemusí si to generovat sám.
smitka
Profil
Proměnnou $_SERVER['GEOIP_COUNTRY_CODE'] nastavuje mod_geoip - rozšíření do webserveru a standardně používá databázi z dev.maxmind.com/geoip/geoip2/geolite2. Aby to fungovalo, tak musí být tedy podpora se strany serveru.
Davex
Profil
M4n:
Tuhle mantru o "zatěžování serveru skrze .htaccess", bych už radši opustil, protože si ji někdo před lety vycucal z prstu.
Já to kdysi změřil. Sekvenční zpracování 11000 řádků v .htaccess, které to [#6] vygeneruje pro zablokování pouze IP adres z Ruska, bude mnohem pomalejší než nalezení země k IP adrese v GeoIP databázi. Je naivní si myslet, že to bude srovnatelně rychlé.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: