Code in einer .htaccess
- Condor
- Insider
- Beiträge: 127
- Registriert: 25.09.2016, 13:14
- Hat sich bedankt: 74 Mal
- Danke erhalten: 12 Mal
Code in einer .htaccess
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:
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:
Was meint Ihr?
Vielen Dank im Voraus!
Gruß Frank
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
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
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)]
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
- Gumfuzi
- ★ Team Admin ★
- Beiträge: 34341
- Registriert: 10.11.2003, 00:00
- Hat sich bedankt: 16 Mal
- Danke erhalten: 50 Mal
- Gender:
Re: Code in einer .htaccess
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!
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.
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.
- Condor
- Insider
- Beiträge: 127
- Registriert: 25.09.2016, 13:14
- Hat sich bedankt: 74 Mal
- Danke erhalten: 12 Mal
Re: Code in einer .htaccess
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)]
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)]
- Gumfuzi
- ★ Team Admin ★
- Beiträge: 34341
- Registriert: 10.11.2003, 00:00
- Hat sich bedankt: 16 Mal
- Danke erhalten: 50 Mal
- Gender:
Re: Code in einer .htaccess
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?
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.
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.