Seite 1 von 1

Code in einer .htaccess

Verfasst: 20.02.2024, 11:12
von Condor
Moin!

Bitte eine Frage an die Coder unter euch:
Ich möchte, dass ein User-Agent alle Variationen VOR und NACH dem Wort "censys" blockiert.

Ich habe mir heute diesen Code erstellt:

Code: Alles auswählen

SetEnvIfNoCase User-Agent ".*censys*." bad_bot
deny from env=bad_bot
Leider gibt es Differenzen zwischen mir und ChatGPT, der meint dazu folgendes:

Der von Ihnen vorgeschlagene Code verwendet den regulären Ausdruck ".*censys*.", um den User-Agent zu überprüfen.
Allerdings gibt es hier zwei potenzielle Probleme:

Der Ausdruck ".*censys*." würde "censys" und alle Variationen davor und danach abdecken. Das Problem ist jedoch,
dass der Stern * nach "censys" keine spezifische Bedeutung hat. In regulären Ausdrücken bedeutet * null oder mehr
Vorkommen des vorherigen Zeichens. Daher könnte "censys" gefolgt von null oder mehr beliebigen Zeichen
abgedeckt werden, was zu unerwarteten Übereinstimmungen führen könnte.

Der Punkt . in ".*censys*." steht für jedes beliebige einzelne Zeichen. Dies bedeutet, dass "censys" gefolgt
von einem einzelnen Zeichen abgedeckt wird. Wenn jedoch "censys" gefolgt wird von einem Punkt, der
nicht als Zeichenpunkt interpretiert wird, würde dies zu unerwarteten Übereinstimmungen führen.

Um diese Probleme zu beheben und sicherzustellen, dass der Code "censys" und alle Variationen vor
und nach der Zeichenfolge korrekt abdeckt, ist es ratsam, den regulären Ausdruck wie folgt anzupassen:

apache
Copy code
SetEnvIfNoCase User-Agent ".*c[e3]nsys.*" bad_bot
deny from env=bad_bot


Zuvor in der Diskussion mit ChatGPT hat der BOT mir auch diesen Code ausgegeben:

Code: Alles auswählen

SetEnvIfNoCase User-Agent ".*censys.*" bad_bot
deny from env=bad_bot
Was meint Ihr?

Vielen Dank im Voraus!
Gruß Frank

Re: Code in einer .htaccess

Verfasst: 20.02.2024, 20:19
von Gumfuzi
Bei RexEx kann dieses Tool evtl. nützlich sein, weil man sonst leicht etwas übersehen kann:
https://regexr.com

Hier ist auch noch eine ZuSa:
https://trg.de/post/regulaere-ausdruecke/

...oder mehr zu deinem Beispiel passend:
https://www.askapache.com/htaccess/setenvif/

Viel Erfolg!

Re: Code in einer .htaccess

Verfasst: 21.02.2024, 14:38
von Condor
Gumfuzi hat geschrieben: 20.02.2024, 20:19 Bei RexEx kann dieses Tool evtl. nützlich sein, weil man sonst leicht etwas übersehen kann:
https://regexr.com

Hier ist auch noch eine ZuSa:
https://trg.de/post/regulaere-ausdruecke/

...oder mehr zu deinem Beispiel passend:
https://www.askapache.com/htaccess/setenvif/

Viel Erfolg!

Vielen Dank, aber sicherer bin ich auch damit nicht.
Irgendwie steht es 50<>50
ob nun:
a) .*censys.*

Oder:

b) *.censys*.

Oder:

c) .censys.

[...]

Re: Code in einer .htaccess

Verfasst: 21.02.2024, 16:44
von Gumfuzi
Ist zeitlich gerade schwierig... mal kurz gepostet:

warum nicht einfach "censys" nehmen, dann sollte normalerweise beim RegEx alles gefunden werden, was "censys" enthält. Du suchst ja nur danach, willst es also nicht ersetzen.
Wenn das censys am Anfang steht bräuchte man zB. "^censys"
das ".*" davor bzw. danach bewirkt IMO ja nur, dass alles vor bzw. nach dem gesuchten censys "markiert" wird für ein optionales replace.
Da du ja nur gucken willst, ob das censys enthalten ist (egal wo ), sollte es mit "censys" genügen - meiner Meinung nach.

Ebenfalls wäre ggf. zu beachten, dass eine RewriteRule vor einem SetEnv angewandt werden (falls das bei dir der Fall ist).

btw: ist am Server auch das Modul mod_setenvif aktiv?