A nyilvános forráskódú CMS rendszereket leggyakrabban az admin felületről törik fel illetéktelenek. Ezt a leghatékonyabban úgy védheted ki, hogy az adminisztrációs oldal hozzáférését korlátozod, hogy csak a te gépedről vagy egy adott hálózatból lehessen csak elérni azt. WordPress, Joomla vagy egyéb elterjedt CMS rendszerek esetében ez könnyedén megoldható.
Jó tudni!
Az IP cím egyedi módon azonosítja az Internethez kapcsolt számítógépet, és ez szerencsére le is kérdezhető bármelyik tárhelyen amikor az oldal betöltődik. Saját Ip címedet megtudhatod az ipcimem.info oldalon.
A korlátozást a .htaccess konfigurációs fájlban tudod beállítani.
Hol találom a .htaccess fájlt?
Általában minden weboldalhoz tartozik .htaccess fájl, azonban nem mindegy melyik fájlt szerkeszted. Az alábbiakban három módszert fogok leírni, hogy hogyan kell az IP cím korlátozást kialakítani, mind a két esetben máshol kell elhelyezni a fájlt. Ha a fájl már létezik az adott helyen, akkor egyszerűen bele kell írni, ha még nincs, akkor létre kell hozni.
A .htaccess fájlt szerkesztheted vagy létrehozhatod a megfelelő helyen a cpanel fájlkezelője segítségével, de akár FTP-vel is feltöltheted. Fontos, hogy a cpanel fájlkezelőjében engedélyezned kell a rejtett fájlokat, ahhoz, hogy lásd ezt a fájlt.
Teljes könyvtár korlátozása
Ez egy nagyon egyszerű módszer, amivel például a Joomla teljes /administrator könyvtára korlátozható. Ebben az esetben a .htaccess fájlt a /administrator könyvtárban kell elhelyezned, nem a fő könyvtárban! Wordpress esetén ez a /wp-admin.
Tételezzük fel, hogy Ip címed lekérted az ipcimem.info oldalról és az: 111.111.111.111
Így módosítsd a .htaccess fájlt (egyszerűen add hozzá az alábbi sorokat):
1 2 3 |
Order Deny,Allow deny from all allow from 111.111.111.111 |
Ha IP címed gyakran változik, mert mondjuk 3g mobil hálózatot használsz, akkor is észre fogod venni, hogy csak az utolsó egy vagy kettő számjegy módosul. Ekkor a htaccess fájlban tartományt is megadhatsz.
Ha az utolsó kettő változik (jobb oldali két szám):
1 2 3 |
Order Deny,Allow deny from all allow from 111.111.0.0/16 |
Ha csak az utolsó változik (jobb oldali szám):
1 2 3 |
Order Deny,Allow deny from all allow from 111.111.111.0/24 |
Több IP cím megadása:
1 2 3 4 5 |
Order Deny,Allow deny from all allow from 111.111.111.0/8 allow from 222.222.222.222 allow from 333.333.0.0/16 |
Egyes fájlok tiltása
Például WordPress esetében lehetséges, hogy vannak olyan fájlok, amiket az oldal látogatói letöltenek az admin könyvtárból, mert egyes weboldal elemeknek (plugin, widget) szükséges a működéséhez. Ez normális, és nem ritka, hogy a WordPress widget rendszeresen lekérdezi az admin-ajax.php fájlt. Ekkor nem megfelelő a teljes könyvtár tiltása, mert az oldal egyes elemei hibásan fognak megjelenni.
A megoldás, hogy csak bizonyos fájlokat tiltunk a .htaccess fájlból. Ez elsőre kicsit bonyolultabbnak tűnhet, de nem kell megijedned! Ha az előző módszert átolvastad, ezt is meg fogod érteni!
Tételezzük fel, hogy Ip címed: 111.111.111.111
Mondjuk azt, hogy WordPress-ben készül a weboldalunk, és szeretnénk a wp-login.php fájlt tiltani, hogy illetéktelenek ne próbálgassák a bejelentkezést. Ekkor módosítanod kell (vagy létrehozni ha még nincs) a fő könyvtárban levő .htaccess fájlt, hogy ez szerepeljen benne, lehetőleg az elején:
1 2 3 |
RewriteCond %{REMOTE_ADDR} !111.111.111.111 RewriteCond %{REQUEST_FILENAME} wp-login.php RewriteRule - [F,L] |
Jó tudni!
Az első sorban szereplő Ip címben a pontok elé visszatörtet (backslash) kell rakni!
Ha nagyobb tartományt szeretnél megadni, mert változik az IP címed utolsó két számjegye is, akkor el kell hagyni az utolsó kettőt. Ha egy változik rendszeresen az Internet szolgáltató miatt, akkor egyet:
1 2 3 |
RewriteCond %{REMOTE_ADDR} !111.111.111 RewriteCond %{REQUEST_FILENAME} wp-login.php RewriteRule - [F,L] |
A legokosabb megoldás
A legnagyobb biztonságot az nyújtja például WordPress esetében ha a teljes wp-admin könyvtárat tiltod, azonban beengeded azokat a kéréseket amiket a widgetek használnak, például admin-ajax.php
1 2 3 4 5 6 7 8 9 10 |
RewriteCond %{REMOTE_ADDR} !111.111.111 RewriteCond %{REQUEST_FILENAME} wp-login.php RewriteRule - [F,L] RewriteCond %{REMOTE_ADDR} !111.111.111 RewriteCond %{REQUEST_FILENAME} /wp-admin/ RewriteCond %{REQUEST_FILENAME} !/wp-admin/admin-ajax.php RewriteCond %{REQUEST_FILENAME} !/wp-admin/css/ RewriteCond %{REQUEST_FILENAME} !/wp-admin/images/ RewriteRule - [F,L] |
A .htaccess konfiguráció két szabályt tartalmaz, ami a következőt jelenti sorról sorra:
- Ha az Ip címed nem 111.111.111-el kezdődik
- és a wp-login.php fájlt akarod lekérni
- akkor nincs jogosultságod
- Következő szabály:
- Ha az Ip címed nem 111.111.111-el kezdődik
- és a wp-admin könyvtárat szeretnéd lekérni
- de nem a /wp-admin/admin-ajax.php fájlt kéred
- és nem a /wp-admin/css/ könyvtárat kéred
- és nem a /wp-admin/images/ könyvtárat kéred
- akkor nincs jogod
Röviden annyit jelent, hogy nincs jogod belépni és az admin könyvtárhoz, de azért az admin könyvtárból megjelenítheted a képeket és css fájlokat.
További egyszerű .htaccess beállítás
Tovább növelheted Joomla vagy WordPress oldalad biztonságát, ha elhelyezel egy .htaccess fájlt az alább megjelölt helyekre:
- Joomla esetén: images/
- WordPress esetén: wp-contents/upload
A fájl tartalma pedig a következő legyen:
1 2 3 4 5 6 7 8 |
<Files ~ ".*..*"> Order Allow,Deny Deny from all </Files> <FilesMatch ".(jpg|jpeg|jpe|gif|png|tif|tiff)$"> Order Deny,Allow Allow from all </FilesMatch> |