Autor | Zpráva | ||
---|---|---|---|
Kalixt23 Profil |
#1 · Zasláno: 21. 9. 2017, 16:44:49
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 |
#2 · Zasláno: 21. 9. 2017, 22:09:49
Ú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 * |
#3 · Zasláno: 22. 9. 2017, 00:30:53
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 * |
#4 · Zasláno: 22. 9. 2017, 22:13:27
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.
|
||
Časová prodleva: 3 dny
|
|||
M4n Profil * |
#5 · Zasláno: 25. 9. 2017, 11:44:17
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 |
#6 · Zasláno: 25. 9. 2017, 12:08:57
|
||
Davex Profil |
#7 · Zasláno: 25. 9. 2017, 20:05:50
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 * |
#8 · Zasláno: 26. 9. 2017, 17:05:15
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 |
#9 · Zasláno: 26. 9. 2017, 20:14:39
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 * |
#10 · Zasláno: 28. 9. 2017, 12:42:30
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 |
#11 · Zasláno: 28. 9. 2017, 12:52:01
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 * |
#12 · Zasláno: 28. 9. 2017, 17:22:54
_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 |
#13 · Zasláno: 28. 9. 2017, 22:31:50
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.
|
||
Časová prodleva: 4 dny
|
|||
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é. |
||
Časová prodleva: 7 let
|
0