Hallo,
wenn du mit Sicherheitsabfragen Dinge wie Captchas oder Fragefelder (Was ist 1+1? etc.) meinst, fände ich es _sehr_ bedauerlich, wenn du soetwas Nutzen möchtest.
Es ist für den User eine Qual sich mit solchem Schmarrn herumzuschlagen. Ich bin jung und sehe (dank meiner Brille ;) ) recht gut, aber trotzdem brauche ich oft ein paar Versuche um an den Captchas vorbeizukommen. Leute mit schlechteren Augen, die eventuell noch nichtmal den Sinn hinter Captchas verstehen, werden dann wohl entsprechend ungern auf deiner Seite unterwegs sein.
Wenn du mit Sicherheitsabfragen allerdings irgendwelche internen if-Abfragen oder sowas meinst, die Spam etc. aussortieren sollen, dann besteht da keine Frage - das muss rein ansonsten ist es kein anständiges Formular-Skript.
Ob das ganze in PHP4 oder einer anderen Version oder Sprache geschrieben ist spielt keine Rolle - hauptsache es erfüllt einige (Sicherheits)Standards.
Was sollte das Skript also können?
- Das weitaus wichtigste ist, dass es Sicher vor Injections ist. Das Skript soll also genau das machen, und nur das, wofür es von dir gedacht ist und sich zu nichts anderem missbrauchen lassen. Jede Eingabe muss daher aus Plausibilität geprüft werden. So kann man zum Beispiel über das Feld "Absender-Mail-Adresse" beliebig viele weitere Mail-Empfänger (neben dir) einschleusen, wenn in diesem Feld nicht nur Mail-Adressen sondern auch Zeilenumbrüche zugelassen werden.
- Du musst dich vor Spam (und versehentlichen Doppelabsendungen schützen). Hierzu sollte man ein Token-System verwenden. Dabei wird ein Token generiert, wenn das Formular aufgerufen wird. Bei der Verarbeitung (senden der Mail) wird dann geprüft ob der Token da ist und richtig ist. So wird vermieden, dass man von anderen Formularen an dein PHP Skript Daten senden kann. Durch Löschen des Tokens nach Bearbeitung lässt sich dann leicht eine Reload-Sperre einrichten.
Wenn 2) nicht ausreicht kann man auch noch mit der Überprüfung der Timestamps weiter machen. Ein Ausfüllen des Formulars darf dann nur zwischen X und Y Minuten dauern. Das geht aber natürlich wieder entgegen der Usability. Ich komme sehr gut ohne sowas aus und habe in keinem Formular irgendwelche Spam Probleme. Bevor ich 1) und 2) realisiert hatte gab es über das Kontaktformular Spam an X-beliebige Empfänger und übers Gästebuch SPAM-Einträge...
Auf diese Dinge solltest du dein Skript mal überprüfen und dann weitersehen, ob du wirklich ein neues brauchst.
Gruß
Alex