Mailinglisten-Archive |
Hi Reinhold, Am Mittwoch, 23. November 2005 12:50 schrieb Reinhold Jordan: > >> wie schützt ihr solche skripte gegen missbrauch? > > > > auf jedenfall prüfen, ob das abgesendete Formular auch von dem > > eigenen/erlaubten Server kommt. > > Du meinst nicht etwa HTTP_REFERER, oder? Das ist doch das erste, > was ein Skriptkiddie fälscht. Das läßt sich z.B. bei wget auch > sehr einfach setzen... nicht nur das. :-) Das Problem ist ja auch, daß ein nicht unerheblicher Teil der Anwender ihren Browser bzw. ihre Firewall so konfiguriert haben, daß der Referer nicht mitgesendet wird. D.h. ein Skript, welches also nur funktioniert, wenn der HTTP_REFERER stimmt, gibt auch sonst Probleme. Ich denke, der Ansatz von Andi funktioniert halbwegs, wenn man bei jedem Formularaufruf eine eindeutige ID auf dem Server generiert, diese auf dem Server vermerkt und dann im Formular einbaut. Wird das Formular abgeschickt, wird die ID mitgeschickt. Steht die ID in der Merkliste auf dem Server, läuft das Programm weiter, wenn nicht wir abgebrochen. Wichtig wäre dabei, daß die ID erstens nach einer kurzen Zeit - z.B. fünf Minuten - wieder aus der Liste entfernt wird, auch wenn das Formular (noch) nicht abgeschickt wurde, und zweitens umgehend aus der Liste entfernt wird, sobald die ID einmal verwendet wurde. Letztendlich denke ich aber, daß man damit nur zusätzliche Hürden zur Abschreckung aufbaut. Wer es wirklich darauf anlegt, wird auch diesen Mechanismus knacken. Immerhin bietet er einen gute Schutz gegen automatisierte Spamversuche, wenn er mit den anderen Maßnahmen, die hier vorgeschlagen wurden, gekoppelt wird, insbesondere die Mengen- und Zeitbegrenzungen. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive