Azt szeretném elérni, hogy az Apache néhány felsorolt IP címnek engedjen hozzáférést. Statikusan ezt így lehet:
Order deny,allow
Deny from all
Allow from 10.10.10.111 10.10.10.222
Viszont az IP címeket dinamikusan szeretném változtatni menet közben. Legjobb lenne ha egy külön fájlban vagy mysql adatbázisban lennének az IP címek. Hogyan lehet ezt megoldani?
Két majdnem jó megoldást találtam:
1) Include direktívával lehet különálló konfig fájlt behúzni apache-ba, de ez csak szerver szinten megy, .htaccess szinten nem. Így viszont újraindítás kell ahhoz, hogy újraolvassa az IP listát, ami viszont nem megoldható.
2) mod_auth_mysql, ezzel tulképp megoldható, viszont ezzel azonosítást kér, ahelyett hogy azonnal beengedné. Így aztán ez sem jó.
- 3842 megtekintés
Hozzászólások
Itt mindent megtalálsz:
http://httpd.apache.org/docs/2.2/rewrite/access.html
http://httpd.apache.org/docs/2.2/rewrite/access.html#host-deny
Lényeg, hogy RewriteMap-ben tárolod a host listát, azt pedig dinamikusan felolvasgatja az apache.
Így nem kell újraindítás.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ennek most utánanézek.
- A hozzászóláshoz be kell jelentkezni
A példa pont a fordítottja annak egyébként, amit kérdeztél.
Minimális változtatással viszont meg lehet fordítani a szabályt.
- A hozzászóláshoz be kell jelentkezni
A MySQL-el óvatosan, mert elég durva forgalmat tud generálni egy ilyen. Egyébként ha PHP-s oldal akkor egyszerűbb az index.php elejére betenni egy minimális kódot, ami a $_SERVER['REMOTE_ADDR'] alapján dolgozik.
- A hozzászóláshoz be kell jelentkezni
cronjob percenként generál egy új map file-t? :-)
- A hozzászóláshoz be kell jelentkezni
Jobb ha a PHP-vel a módosításkor txt-be is kiírja, bár nem tudjuk mennyire akar "dinamikus" megoldást.
- A hozzászóláshoz be kell jelentkezni
persze, lehet okosítani, de tényleg nem tudunk elég részletet :)
- A hozzászóláshoz be kell jelentkezni
Az index.php-s megoldás csak 99%-os védelem, mert pl a statikus fájlokat (css, js, képek) el tudja majd érnie bárki. De lehet, hogy ezzel megelégedhetek.
Sőt, tulképp lehet olyan szabály is a .htaccess-ben hogy ha jön egy speciális cookie, akkor csak az index.php-t engedje megnézni. Az meg majd eldönti az IP alaján, hogy jöhet-e a user, és ha igen akkor ad neki ilyen cookie-t. A Cookie csak a statikus fájlokra vonatkozna, a dinamikus dolgokhoz mindig ellenőrizné az IP-t az index.php
- A hozzászóláshoz be kell jelentkezni
A .htaccess maga egy config file, amit dinamikusan valtoztathatsz es nem kell ujrainditani hozza az apache-ot.
tompos
- A hozzászóláshoz be kell jelentkezni
Pont ezt írtam fent, hogy ez nem megy. .htaccess-be nem lehet ilyen szabályt írni, csak globális config fájlba.
- A hozzászóláshoz be kell jelentkezni
".htaccess-be nem lehet ilyen szabályt írni, csak globális config fájlba."
Ezt alá tudod támasztani? Konkrétan mi történik? Log? Mert ennek mennie kell a gyakorlatban is.
A dokumentáció szerint:
Context: directory, .htaccess
Meg van egyáltalán engedve a Limit?
- A hozzászóláshoz be kell jelentkezni
AllowOverride None esetén nem lehet beírni. Ha nagy a forgalom, akkor célszerű az Apache .htaccess témát kilőni, mert finoman szólva is sokat stat() -ol vele. :)
- A hozzászóláshoz be kell jelentkezni
Ha letiltod, nem mukodik. Hogy mik vannak..:)
t
- A hozzászóláshoz be kell jelentkezni