Ország szerinti engedélyezés / tiltás .htaccess fájl segítségével
Tartalomjegyzék
[elrejtés]Ország szerinti engedélyezés / tiltás .htaccess fájl segítségével
Miért lehet erre szükségem?
Főleg fórum, blog, közösségi oldal üzemeltetőknek merül fel elsőként ez az igény. Amint az oldalt megismerik/felismerik a támadók, hamis regisztrációk sokaságával támadják az oldalt. Céljuk, hogy reklámszöveget, linket helyezzenek el az oldalon, hogy például a keresőmotorok találati listájában előnyösebb helyezést érjenek el, vagy vírusos kódrészleteket tartalmazó linkjeiket terjesszék.
Hogyan védekezhetünk az ilyen támadások ellen?
- Egyik módja lehet, hogy úgynevezett [CAPTCHA] kódot helyezünk el a szövegbeviteli mezők, regisztrációs oldal alá, ami lehetetlenné teszi az automatizált, gépesített adatküldést. Ajánlatos a [reCAPTCHA] használata, ami egyben elősegíti a könyvek digitalizálást is, és megbízható, állandóan továbbfejlesztett kódot generál (ne lehessen automatizáltan kiolvasni a kódot).
- Ha a fenti megoldás nem elegendő, és behatárolható azon országok száma, ahonnan látogatókat várhatunk, használhatjuk az Apache webszerver GeoIP modulját is.
Hogyan működik a GeoIP modul?
A mod_geoip modul elemzi a weboldal látogató IP címét, és adatbázisa alapján három környezeti változó értéket állít be:
- GEOIP_CONTINENT_CODE (például: EU)
- GEOIP_COUNTRY_CODE (például: HU)
- GEOIP_COUNTRY_NAME (például: Hungary)
A környezeti változók értékét felhasználva engedélyezhetjük / tilthatjuk például a regisztrációt a php szkriptekben. Lehetőség van .htaccess fájlban is szabályozni fájlok, könyvtárak, sőt az egész weboldal elérhetőségét.
Példák a .htaccess szabályozásra
1.) Csak a megadott országokra engedélyezzük a teljes weboldal látogathatóságát:
<IfModule mod_setenvif.c> SetEnvIf GEOIP_COUNTRY_CODE HU AllowCountry SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry # további országokat is megadhatunk Deny from all Allow from env=AllowCountry # Ha a tiltott országból mégis szeretnénk IP címeket engedélyezni Allow from 1.2.3.4 </IfModule>
2.) A megadott országokat tíltjuk a teljes weboldalra vonatkoztatva:
<IfModule mod_setenvif.c> SetEnvIf GEOIP_COUNTRY_CODE HU DenyCountry SetEnvIf GEOIP_COUNTRY_CODE DE DenyCountry SetEnvIf GEOIP_COUNTRY_CODE US DenyCountry # további országokat is megadhatunk Deny from env=DenyCountry # Ha a tiltott országból mégis szeretnénk IP címeket engedélyezni Allow from 1.2.3.4 </IfModule>
3.) Csak egy speciális fájlt tiltunk el a megadott országoktól:
<Files registration.php> <IfModule mod_setenvif.c> SetEnvIf GEOIP_COUNTRY_CODE HU DenyCountry SetEnvIf GEOIP_COUNTRY_CODE DE DenyCountry SetEnvIf GEOIP_COUNTRY_CODE US DenyCountry # további országokat is megadhatunk Deny from env=DenyCountry # Ha a tiltott országból mégis szeretnénk IP címeket engedélyezni Allow from 1.2.3.4 </IfModule> </Files>