Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Captcha-Erstellung einschränken (https://www.delphipraxis.net/92582-%5Bphp%5D-captcha-erstellung-einschraenken.html)

TheMiller 22. Mai 2007 16:52


[PHP] Captcha-Erstellung einschränken
 
Hallo,

wenn Captchas erstellt werden, werden ja Daten entweder auf Festplatte oder in eine Datenbank geschrieben. Bei mir ist es so, dass das PHP-Skript mit dem Formular in die DB einen MD5-Hash schreibt und das Bild-Skript, welches in das Formular eingebunden wird, speichert den Schlüssel zum Hash.

Jetzt könnte aber jemand kommen und könnte den ganzen Tag die Seite mit dem Formular aufrufen und somit würde den ganzen Tag neue datensätze in der Datenbank gespeichert und diese somit überflüssig belastet werden.

Wie kann ich das verhindern? Soll ich pro IP_Adresse nur einen Hash zulassen?

DGL-luke 22. Mai 2007 16:57

Re: [PHP] Captcha-Erstellung einschränken
 
Würd ich nicht machen. Natürlich kannst du eine bestimmte Flood-Sperre einbauen, also pro IP nur 10 Cpatchas in 10 Minuten oder so.

Aber mehr is da wirklich nicht nötig.

TheMiller 22. Mai 2007 16:59

Re: [PHP] Captcha-Erstellung einschränken
 
Naja, das ist ok.

Ich will halt verhindern, dass jmd ein Programm erstellt, welches den ganzen Tag http://www.domain.de/form.php aufruft und meine DB total zugemüllt ist...

Kennst du noch eine andere Lösung?

BenjaminH 22. Mai 2007 17:03

Re: [PHP] Captcha-Erstellung einschränken
 
Kannst du die Datensätze nicht irgendwann ablaufen lassen?

DerFree 22. Mai 2007 17:05

Re: [PHP] Captcha-Erstellung einschränken
 
Richte es doch so ein das ein Captcha nur eine gewisse Zeit gültig ist.

[edit]
Ich sollte mal schneller schreiben.
[/edit]

TheMiller 22. Mai 2007 17:08

Re: [PHP] Captcha-Erstellung einschränken
 
Bei jedem reload der Seite (durch Falscheingabe des Captchas oder sonstige Fehler), wird ein neues Captcha mit einem neuen Hash erstellt. Anders würden die Werte ja nie mehr zusammen passen (Hash und Key)

BenjaminH 22. Mai 2007 17:11

Re: [PHP] Captcha-Erstellung einschränken
 
Ja, aber du könntest ja nach einiger Zeit alte Einträge aus der DB löschen.
Nach einer Stunde muss das Captcha nicht mehr gültig sein.

TheMiller 22. Mai 2007 17:15

Re: [PHP] Captcha-Erstellung einschränken
 
Das ist richtig. Ich könnte einen Cronjob erstellen, der die captchas aus der DB löscht.

NUR: Das verhindert ja nicht, dass jmd, ein solches Programm schreibt, wie ich es oben erklärt habe.

Wie siehts mit der $_SERVER['HTTP_REFERER']-Variablen aus. Das könnte zumindest ein kleiner Schutz gegen diese Skript-Kiddies sein, oder?

Matze 22. Mai 2007 17:33

Re: [PHP] Captcha-Erstellung einschränken
 
Da brauchst du keinen Cronjob, das wäre ja sehr overkilled. Beim Hinzufügen der Einträge kannst du ja die, die älter als 1 Stunde sind (Timestamp mitspeichern, dann ist der Vergleich sehr einfach) aus der Datenbank entfernen. Die Datenbank müsste solche Dinge locker verkraften, denn wenn du ein Flood-Limit einbaust, musst du bei jedem Seitenaufruf überprüfen, ob sich die IP bereits in der Datenbank befindet, was je nach Index-Einstellung, sogar langsamer sein kann. Ich habe meine Indizes größtenteils auf Schreibzugriffe optimiert, daher sind Abfragen minimal langsamer.

TheMiller 22. Mai 2007 17:42

Re: [PHP] Captcha-Erstellung einschränken
 
Nagut,

ich kann das ja erstmal so lassen. Wenn wirklich in der Richtung was passiert, kann ich ja immernoch reagieren (zB. mit dem Http-Referer etc...)

Dann danke ich euch soweit!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz