Regulärer Ausdruck für mod_security-Rule gesucht

redled

New Member
Hallo Gemeinschaft,

ich benötige einen Regulären Ausdruck innerhalb einer mod_security - Rule.
Die Quellvariable beinhaltet einen Ländercode "xx" (2,alphanum). zB. DE, RU, US.
In Worten soll er folgendes leisten:

"Prüfe die Zeichenkette in der Variable ENV_GEOIP_COUNTRY_CODE, ob diese die Zeichenkette "US" enthält. Wenn TRUE, dann prüfe, ob die Variable REMOTE_HOST die Zeichenkette "googlebot.com" oder "crawl.yahoo.net" NICHT enthält.

Ich will quasi alles was "US" ist, bis auf Google und Yahoo, blocken. Die zu prüfenden Strings sind einmal "crawl-66-249-71-103.googlebot.com" und "llf531020.crawl.yahoo.net" Ist der folgende zweite Ausdruck richtig?

Code:
SecFilterSelective ENV_GEOIP_COUNTRY_CODE "^US$" chain
SecFilterSelective REMOTE_HOST "(?!.googlebot\.com$)|(?!.crawl\.yahoo\.net$)"

Grüße
 
gelöst:

Code:
SecFilterSelective ENV_GEOIP_COUNTRY_CODE "^US$" chain
SecFilterSelective REMOTE_HOST "!(.*googlebot.com|.*crawl.yahoo.net)"

oder exakter für Google:

Code:
SecFilterSelective ENV_GEOIP_COUNTRY_CODE "^US$" chain
SecFilterSelective REMOTE_ADDR "!^66\.249\.(6[4-9]|[7-8][0-9]|9[0-5])\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))$"
 
Last edited by a moderator:
Back
Top