Apache IP alapú hozzáférés változó IP listával

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ó.

Hozzászólások

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.

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 .htaccess maga egy config file, amit dinamikusan valtoztathatsz es nem kell ujrainditani hozza az apache-ot.

tompos