Code in einer .htaccess

Zeig uns deine erstellten Apps und Programme.
Antworten
Benutzeravatar
Condor
Insider
Insider
Beiträge: 126
Registriert: 25.09.2016, 13:14
Hat sich bedankt: 74 Mal
Danke erhalten: 12 Mal

Code in einer .htaccess

Beitrag von Condor » 20.02.2024, 11:12

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
System:
ASUS ROG Strix B550-A Gaming
CPU: AMD Ryzen 9 5900X
Sapphire Radeon RX 580 Nitro+
32 GB G.Skill RipJaws V
WD BLACK SN850 NVMe, 500GB
750W be quiet!; Straight Power 11, Platinum
BenQ EL2870U 27"
Windows 11 Pro. 64Bit [ (23H2, 22631.2792)]

Tante Google

Code in einer .htaccess

Beitrag von Tante Google » 20.02.2024, 11:12


Benutzeravatar
Gumfuzi
★ Team Admin ★
Beiträge: 34227
Registriert: 10.11.2003, 00:00
Hat sich bedankt: 15 Mal
Danke erhalten: 45 Mal
Gender:

Re: Code in einer .htaccess

Beitrag von Gumfuzi » 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!
[x] <=- Hier Nagel einschlagen für neues Display!
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.

Benutzeravatar
Condor
Insider
Insider
Beiträge: 126
Registriert: 25.09.2016, 13:14
Hat sich bedankt: 74 Mal
Danke erhalten: 12 Mal

Re: Code in einer .htaccess

Beitrag von Condor » 21.02.2024, 14:38

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.

[...]
System:
ASUS ROG Strix B550-A Gaming
CPU: AMD Ryzen 9 5900X
Sapphire Radeon RX 580 Nitro+
32 GB G.Skill RipJaws V
WD BLACK SN850 NVMe, 500GB
750W be quiet!; Straight Power 11, Platinum
BenQ EL2870U 27"
Windows 11 Pro. 64Bit [ (23H2, 22631.2792)]

Benutzeravatar
Gumfuzi
★ Team Admin ★
Beiträge: 34227
Registriert: 10.11.2003, 00:00
Hat sich bedankt: 15 Mal
Danke erhalten: 45 Mal
Gender:

Re: Code in einer .htaccess

Beitrag von Gumfuzi » 21.02.2024, 16:44

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?
[x] <=- Hier Nagel einschlagen für neues Display!
Du kannst niemals alle mit deinem Tun begeistern. Selbst wenn du über's Wasser laufen kannst, kommt einer daher und fragt, ob du zu blöd zum Schwimmen bist.

Antworten