[apache setenvif] hoe netmask aangeven (if possible)?

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Ik wil op een apache webserver een variable setten en die met PHP oppikken om access te geven / te deny-en. Dit moet gebeuren op basis van IP blokken en werkt OK.
In apache main config:

SetEnvIf Remote_Addr "^192\.87\.30\.*" is_admin

Dan vervolgens in PHP zoiets:

if (@$_SERVER['is_admin']) {
echo 'U Bent Admin!';
}


Ik kan echter nergens vinden hoe je:
* een IPv4 netblock opgeeft wat niet op 8 bit boundaries valt.
* een IPv6 netblock opgeeeft

Aangezien het een regex is en vrees ik het ergste ;(

[ Voor 43% gewijzigd door usr-local-dick op 03-12-2004 14:48 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 19:25
Heb je bv. dingen geprobeerd als '192.186.224/19' (zie hier voor wat voorbeelden/uitleg)?

Trouwens, ik hoop niet dat dit het enige mechanisme is waarmee je access checkt toch? Authenticatie doen puur op IP is vragen om ellende namelijk.

Edit: Hmm, die gasten hebben bepaald wat rare dingen gedaan met hun access...via google kom ik er gewoon op, maar via de link in mijn post dus niet. Zoek desnoods met google op 'apache netmask matching', dan is het een van de eerste links.

[ Voor 49% gewijzigd door Wilke op 03-12-2004 15:22 ]


Verwijderd

SetEnvIf werkt met regular expressions, dus netmasks etc gaan niet werken. Google op "regular expressions".

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Trouwens, ik hoop niet dat dit het enige mechanisme is waarmee je access checkt toch? Authenticatie doen puur op IP is vragen om ellende namelijk.
Neehoor, we hebben een soort admin pagina waar je met wachwoorden/https in moet, maar alleen vanaf bepaalde netblokken mag dit dan.
Diezelfde ACL zorgt er ook voor dat het admin knopje alleen te zien is vanaf die blokken....

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op vrijdag 03 december 2004 @ 17:41:
SetEnvIf werkt met regular expressions, dus netmasks etc gaan niet werken. Google op "regular expressions".
Nou dat is jammer dan :(
Behalve IPv4 hebben we nl. ook nog IPv6 blokken, wat de boel nog weer ingewikkelder maakt.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Waarom test je dat niet gewoon in je php script :?

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • usr-local-dick
  • Registratie: September 2001
  • Niet online
moto-moi schreef op vrijdag 03 december 2004 @ 18:53:
Waarom test je dat niet gewoon in je php script :?
Omdat het om een directory gaat waar ook niet-PHP files staan....
Daarom wil ik een server-wide env var setten, die werkt dan dus met apache.
In mijn PHP scripten kun je die dan ook weer makkelijk hergebruiken.
Pagina: 1