Problem Captcher im Kontaktformular |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Problem Captcher im Kontaktformular |
Mon. 5. May 2008, 11:22
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 627 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 25 |
Hallo SF
2 Probleme mit Captcher 1. Vor kurzem habe ich mal Dateien über FTP auf einen local PC geladen. Dabei ist mir aufgefallen das unter dem Pfad /cms/files/tmp/captcha/ mehrere 1000 Dateien gefunden. Nun meine Frage: werden diese Dateien nicht nach einer gewissen zeit automatisch gelöscht? 2. Bei einem neuen Hosting wird bei das Captcher-Bild so dargestellt. Da kann natürlich niemand was erkennen. kennt jemand den grund? Zuschneiden_84.jpg ( 4.13KB ) Anzahl der Downloads: 43 Gruss -------------------- feniweb
_____________________________________________________________________________ Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertolt Brecht) |
|
|
Tue. 6. May 2008, 08:21
Beitrag
#2
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
1. Vor kurzem habe ich mal Dateien über FTP auf einen local PC geladen. Dabei ist mir aufgefallen das unter dem Pfad /cms/files/tmp/captcha/ mehrere 1000 Dateien gefunden. Nun meine Frage: werden diese Dateien nicht nach einer gewissen zeit automatisch gelöscht? Hatte das Problem auch mal. Da war allerdings ein SPAM Bot drauf und ich hatte ca. 1000 Captchas pro Minute. Das hat meinen Server "leicht" in die Knie gezwungen und mich maßnahmen treffen lassen Seitdem nutze ich auch das Captcha nicht mehr. Sollte das aber tatsächlich so sein (ich dachte der Code löscht die Bilder nach einer STunde selbst) ist das ein böser Fallstrick! -------------------- |
|
|
Tue. 6. May 2008, 10:28
Beitrag
#3
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Die Captchagrafiken werden nach einen gewissen Zeitraum automatisch gelöscht. Ich meine, das wären 7 Minuten.
Bearbeitungsgrund: Ein Captcha wird alle 7 Minuten gelöscht und nicht, wie irrtümlich angenommen alle 12 Stunden.
-------------------- Es wird, es wird...
|
|
|
Tue. 6. May 2008, 10:30
Beitrag
#4
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Dann solltest du dir mal gedanken darüber machen ob da vielleicht auch ein Spambot das Formular massenweise aufruft!
-------------------- |
|
|
Tue. 6. May 2008, 10:55
Beitrag
#5
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Ich hab jetzt mal nachgeschaut. Die Captchagrafiken verlieren nach 7 Minuten ihr Gültigkeit und werden dann gelöscht. Bis jetzt hatte ich damit noch nie Probleme. Schau bitte unter projektXX/cms/inc/capimg.php . Dort kannst Du in Zeile 12 in der Variable '$captcha_expires_after' den Wert in Sekunden festlegen. Nach jedem Aufruf des Captchas sollten abgelaufene Bilder verschwunden sein.
Wenn also ein SPAMbot innerhalb von 7 Minuten 1000 mal die Seite aufruft hast Du dann echt ein Problem, denke aber nicht, das das Kontaktformular darauf reagieren kann, eher die Firewall des Providers. -------------------- Es wird, es wird...
|
|
|
Tue. 6. May 2008, 10:58
Beitrag
#6
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Bei mir ist halt einfach der Server ob der Last von über 1000 Bildberechnungen pro Minute abgeraucht und das scheinbar immer nach ein zwei Minuten. Hinterher hatte ich über 10 GB Catpchas nach einem Wochenende!
-------------------- |
|
|
Tue. 6. May 2008, 11:13
Beitrag
#7
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Frage ist, wie kommt das zustande? Dateien, die im Captchaverzeichnis liegen und älter als 7 Minuten sind, werden gelöscht. Berechnet wird das auf Basis des Erstellungszeitpunktes einer Datei.
-------------------- Es wird, es wird...
|
|
|
Tue. 6. May 2008, 12:19
Beitrag
#8
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Kein Plan. Hab wie gesagt dann den Bot ausgesperrt und mittelfristig das Kontaktformular ganz rausgeworfen...
-------------------- |
|
|
Tue. 6. May 2008, 17:27
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 627 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 25 |
Hallo saschapi + björn
Danke für die Infos. Also was ich nun auf diversen Hostings wo ich den Captcher einsetze feststellte, werden die Dateien zwar gelöscht aber nicht nach 7 Minuten (420), weil es existieren jeweils noch welche vom Vortag. Aus welchem Zeitraum die 1000de Dateien wahren weis ich nicht mehr habe ich natürlich alle gelöscht, werde das nur aber öfters überwachen. Zu meinem 2. Problem mit der Darstellung könnt Ihr mir da was raten? Saschapi wie hast du das damals gelöst? Gruss -------------------- feniweb
_____________________________________________________________________________ Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertolt Brecht) |
|
|
Tue. 6. May 2008, 21:58
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Hi,
@feniweb, das könnte ein Problem mit dem Font oder sogar mit einer nicht korrekt installierten Freetype oder Gd library auf dem System zusammenhängen. Letztlich wird zwar in der '/backen/inc/class.captcha.php' die Freetypelib 1 angesprochen aber nicht getestet ob sie da ist bzw vieleicht Version 2 eingebunden ist! ZITAT freetypelib = 1 imageTTFBbox() und imageTTFtext() freetypelib = 2 imageFTBbox() und imageFTText() Zu den nicht gelöschten Dateien: schon hier habe ich darauf hingewiesen das das nicht unbedingt klappt. In dem Zusammenhang wurde mein Einwand aber gleich abgewürgt. Grundsätzlich ist die Idee ja schön nur ist es schwach umgesetzt. QUELLTEXT // clean up $tmp_dir = dir( $tmp_dir_path ); while( $entry = $tmp_dir->read()) { if ( is_file( $tmp_dir_path . $entry ) ) { if ( mktime() - filemtime( $tmp_dir_path . $entry ) > $captcha_expires_after ) { unlink( $tmp_dir_path . $entry ); } } } Der verwendete Code ist nicht unbedingt sicher und eher Pseudocode. Auf verschiedenen Systemen habe ich festgestellt das ein while( $entry = $tmp_dir->read()) {} eben nicht immer alle Dateien ausgibt bzw nachfolgend diese Dateien nicht exclusiv geöffnet und dann gelöscht werden können. Auch das unlink() ist nicht die beste Wahl da auch dort System- und Konfigurationsabhängig eventuell nicht die nötigen Rechte für unlink() vorhanden sind oder der Befehl Systemspezifisch gar nicht richtig ausgeführt wird. Auch fehlt es hier an einer Erfolgskontrolle des Löschvorgangs selbst und ein close()! In der Datei '/backend/inc/fnc.library.php' gibt es schon länger eine Methode (lib_delete_file()) zum sicheren löschen von Dateien. Lg |
|
|
Wed. 7. May 2008, 08:18
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 627 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 25 |
Hai STam
erstmal herzlichen dank. ZITAT das könnte ein Problem mit dem Font oder sogar mit einer nicht korrekt installierten Freetype oder Gd library auf dem System zusammenhängen. Letztlich wird zwar in der '/backen/inc/class.captcha.php' die Freetypelib 1 angesprochen aber nicht getestet ob sie da ist bzw vieleicht Version 2 eingebunden ist! ZITAT freetypelib = 1 imageTTFBbox() und imageTTFtext() freetypelib = 2 imageFTBbox() und imageFTText() Die Datei class.captcha.php habe ich zwar nicht unter dem erwähnten Pfad gefunden, sondern unter backend/external/misc/ Unter PHP 5.2.2 funktioniert Captcher einwandfrei (FreeType Version 2.3.5) Unter PHP 4.3.4 nicht. In der phpinfo() fand ich keinen freetypelib Eintrag. Kann, oder müsste der Provider irgend welche Einstellungen ändern oder kann man in SF etwas anpassen und wenn ja, wo und was? Gruss Edit: scheinbar werden unter PHP5.2 die 7Min Löschzeit eingehalten aber unter PHP4.3 nicht? -------------------- feniweb
_____________________________________________________________________________ Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertolt Brecht) |
|
|
Thu. 8. May 2008, 09:44
Beitrag
#12
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Thema Dateien löschen:
Nur an der PHP Version hängt das sicher nicht. Welchen chmod hat den eine CaptchagrafikDatei unter Deiner PHP 4.3 Installation? Die Idee con stam hört sich ganz brauchbar an. Tausch den cleanup Code in projektXX/cms/inc/capimg.php mal gegen folgenden aus und schau, ob es funktioniert: QUELLTEXT // clean up
$tmp_dir = dir( $tmp_dir_path ); while( $entry = $tmp_dir->read()) { if ( is_file( $tmp_dir_path . $entry ) ) { if ( mktime() - filemtime( $tmp_dir_path . $entry ) > $captcha_expires_after ) { unlink( $tmp_dir_path . $entry ); if (@file_exists($tmp_dir_path . $entry)) { clearstatcache(); $filesys = eregi_replace("/", "\\", $tmp_dir_path . $entry); $delete = @system("del $tmp_dir_path . $entry"); if (@file_exists($tmp_dir_path . $entry)) { clearstatcache(); $delete = @chmod ($tmp_dir_path . $entry, 0777); $delete = @unlink($tmp_dir_path . $entry); $delete = @system("del $tmp_dir_path . $entry"); } } } } } -------------------- Es wird, es wird...
|
|
|
Thu. 8. May 2008, 10:08
Beitrag
#13
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 627 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 25 |
Danke björn
Werde das die nächsten Tage testen. Bin im Moment jedoch mächtig unter Druck mit bestimmtem Festaktivitäten Gruss -------------------- feniweb
_____________________________________________________________________________ Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertolt Brecht) |
|
|
Thu. 8. May 2008, 10:21
Beitrag
#14
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Dann lass von Dir hören, wenn das die Lösung ist, sollte das in das System.
-------------------- Es wird, es wird...
|
|
|
Mon. 19. May 2008, 09:18
Beitrag
#15
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 627 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 25 |
so björn
Habe deinen Codeschnippsel eingebaut und das nun einige Tage beobachtet. Fazit: Weiterhin bleiben Daten im Ordner cms/files/tmp/captcha/ über mehrere Tage erhalten also der letzten 2-3 Tage, ist unterschiedlich. captcha/ hat chmod 755 Wenn ich dann das Formular aktiv ausfülle und absende, dann werden alle Dateien bis 7Min vor dem absenden gelöscht. Positiv ist das die Dateien jeweils nicht älter als 2-3 Tage sind. Somit hält sich das Datenvolumen in Grenzen, bis jetzt hatte keine Situation mehr mit mehreren 1000 Dateien. Was ärgerlich ist unter PHP4.3.11 das die Zeichen so aussehen. Zuschneiden_84.jpg ( 4.13KB ) Anzahl der Downloads: 5 Wenn ich auf PHP5 umschalte werden sie korrekt dargestellt. Gruss -------------------- feniweb
_____________________________________________________________________________ Wer kämpft, kann verlieren. Wer nicht kämpft, hat schon verloren. (Bertolt Brecht) |
|
|
Mon. 19. May 2008, 10:09
Beitrag
#16
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Kannst Du mir mal ftp Access auf den Ordner geben? Die Löschroutine würde ich mir gerne noch einmal anschauen.
-------------------- Es wird, es wird...
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 26.4.24 - 10:09 |