Seite 1 von 1

Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Sa 12. Okt 2024, 12:50
von Bernhard_4711
Moin,
meine Seite wird permanent von Spammern, Crawlern etc. attackiert, was ja mittlerweile normal ist.
Allerdings erzeugt ein bestimmter Parameter immer einen Eintrag in der Datei "/data/logs/security.txt"; hier mal ein Beispiel:

Code: Alles auswählen

"GET /index.php?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/&/<?echo(md5(\"hi\"));?>+/tmp/index1.php HTTP/1.1" 200 202 "-" "Custom-AsyncHttpClient"
Es geht um "?lang="
Kann man den Aufruf dieses Parameters irgendwie abfangen, damit er nicht mehr in "/data/logs/security.txt" auftaucht?

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Sa 12. Okt 2024, 14:37
von xmurrix
Hallo Bernhard,

gängige Parameter, die CONTENIDO nutzt, werden beim Initialisieren der Anwendung geprüft und wenn da Unstimmigkeiten auftauchen, werden diese in der security.txt protokolliert.

Die Konfiguration der Parameter-Prüfung steht in der "data/config/{umgebungsname}/config.http_check.php" drin, folgende Zeile darin steuert das Protokollieren der Auffälligkeiten:

Code: Alles auswählen

$bLog = true;
Abschalten kannst du das, in dem du eine lokale "data/config/{umgebungsname}/config.http_check.local.php" erstellst und folgende Zeile reinschreibst:

Code: Alles auswählen

$bLog = false;
Es ist zwar ärgerlich, dass die security.txt im Laufe der Zeit voll wird, aber durch das Abschalten der Protokollierung ist das Problem, dass irgendwelche Bots oder Skript-Kiddies versuchen, die Seite anzugreifen, nicht aus der Welt geschafft, man kriegt es nur nicht mit. Besser wäre es, z. B. einmal pro Monat mittels eines Cronjobs die Logs zu leeren.

Gruß
xmurrix

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: So 13. Okt 2024, 12:42
von Bernhard_4711
xmurrix hat geschrieben: Sa 12. Okt 2024, 14:37 Es ist zwar ärgerlich, dass die security.txt im Laufe der Zeit voll wird, aber durch das Abschalten der Protokollierung ist das Problem, dass irgendwelche Bots oder Skript-Kiddies versuchen, die Seite anzugreifen, nicht aus der Welt geschafft, man kriegt es nur nicht mit. Besser wäre es, z. B. einmal pro Monat mittels eines Cronjobs die Logs zu leeren.
Hallo Murat,
ich wollte das nicht abschalten, sondern abfangen. Oder schreiben wir aneinander vorbei?
Bis jetzt kontrolliere ich so gut wie jeden Tag, was auf dem Server so passiert und lösche in dem Zusammenhang diese Datei.

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: So 13. Okt 2024, 13:22
von xmurrix
...ich wollte das nicht abschalten, sondern abfangen...
Abgefangen wird es schon in der Prüfung, da musst du nicht nochmal selber etwas abfangen.

Zurück zur deiner Frage vom Anfang:
...damit er nicht mehr in "/data/logs/security.txt" auftaucht?...
Damit es nicht in der security.txt nicht auftaucht, kann man das Proptokollieren deaktivieren.

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: So 13. Okt 2024, 21:09
von Bernhard_4711
xmurrix hat geschrieben: So 13. Okt 2024, 13:22
...ich wollte das nicht abschalten, sondern abfangen...
Abgefangen wird es schon in der Prüfung, da musst du nicht nochmal selber etwas abfangen.
Verstehe. Dann bleibe ich beim manuellen Kontrollieren und Löschen der LOG-Dateien.
Vielen Dank für die Aufklärung. :wink:

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Fr 18. Okt 2024, 10:47
von Oldperl
Servus,

eventuell sollten wir für die Zukunft über eine konfigurierbare Logrotation für CONTENIDO nachdenken. An die entsprechenden Serverfunktionen kommen viele ja in der Regel nicht ran, und man könnte dadurch auch diese übergroßen Logs vermeiden, die ich immer wieder bei manchen Installationen vorfinde, und die, je nach Leistungsfähigkeit des Webhostings, auch mal das ganze System ausbremsen können.

Gruß aus Franken

Ortwin

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Fr 18. Okt 2024, 12:04
von xmurrix
Hallo Ortin,

das Thema hatte ich auch schon mit Faar.
Wir werden es nicht jedem recht machen können, da jeder das anders haben möchte. Der eine will es monatlich gelöscht haben, der andere will nur die neuesten 100 Einträge haben, ein anderer wiederum will die Logs vorher sichern, usw.

Natürlich können wir da etwas implemetieren, das die gängigsten Anforderungen erfüllt und zu einem gewissen Maß konfigurierbar ist, besser wäre es aber, wenn man das bei Bedarf selbst implementiert. Ein neuer Cronjob ist in CONTENIDO schnell aufgesetzt.

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Mi 23. Okt 2024, 09:58
von Faar
xmurrix hat geschrieben: Fr 18. Okt 2024, 12:04 das Thema hatte ich auch schon mit Faar.
Wir sind auch an dem Punkt hängen geblieben, dass man, um einen Errorlog automatisch von mehreren GB Größe zu Purgen (kürzen), ihn erst als Text einlesen müsste, um die letzten 20 Zeilen zu halten.
Das klappt schon manuell nicht mehr, wenn das Logfile zu groß ist. Also einfaches Purgen ist raus.

Ich hatte aber früher in einem ganz anderen Projekt einen besseren Ansatz für dieses Problem: Man darf das File erst gar nicht groß werden lassen. Mein Script prüfte vor dem Schreiben die Größe, kürzte es gegebenenfalls und fügte dann erst neuen Text ein.
Sinnvollerweise sollte man die Länge der Textzeilen irgendwo einstellen können, mandantenbezogen.

Problem wird wohl sein, alle die Stellen zu finden, wo das Logfile geschrieben wird, weil da muss man dann ansetzen.
Außer Du, Murat, weißt wo das Logfile erzeugt wird und dann muss man hier die Größe kontrollieren.

Re: Parameter "?lang=" erzeugt Fehlermeldung

Verfasst: Mi 23. Okt 2024, 11:09
von Oldperl
Servus,

nun, eventuell könnte man das ja so ähnlich umsetzen, wie ich es vor ein paar Monaten in der ConLite eingebaut habe.
Ihr könnt es euch ja gerne dort mal anschauen. :arrow: https://gitport.de/ConLite/ConLite/pulls/50

Gruß aus Franken

Ortwin