2012-04-07 10 views
0

Ich habe einen einfachen PHP-Kontaktformular aus nach diesem Tutorial: http://www.catswhocode.com/blog/how-to-create-a-built-in-contact-form-for-your-wordpress-themeSicherung eine PHP-Kontaktformular

Das große Problem ist, dass diese Form der Verarbeitung ist nicht sicher, ich habe gehört, wie Leute es mich um Spam versenden können und/oder hack meinen Server.

Was sind die grundlegenden Schritte, um diese Form sicherer zu machen? Ps: Ich will nicht wieder Captcha verwenden, wenn es ... vermieden werden kann

Edit: Ich brauche Vorschläge, welche PHP-Funktionen zu filtern und sichern verwendet werden, dass die Form „, die eingereicht Richtiger Weg "und nicht geändert und/oder verwendet, um meine Website zu hacken oder E-Mails an andere Personen zu senden (die Website zu verwenden, um Spam an andere Personen zu senden). Muss ich nur strip_slashes verwenden? oder gibt es einen besseren Weg?

Antwort

1

Ein Weg: Wenn Sie keine riesige Website sind, ist es unwahrscheinlich, dass jemand das herausfinden wird/nehmen Sie sich die Zeit dazu.

Sie könnten einige knifflige JS verwenden, um Token beim Klicken zu behandeln. Daher gibt Ihr Server während der Backend-Render-Phase Token-IDs an klickbare/fokussierbare Elemente auf der Seite aus. Protokollieren Sie diese in einer Datenbank oder Datendatei. Wenn Benutzer dann klicken und senden, können Sie die über die onclick() - Funktion gesendeten IDs vergleichen. Sie können auch einige Heuristiken anwenden, um zu bestimmen, ob die Historie von Klicks vernünftig stimuliert wird. Posts sind zu schnell, um ein Mensch zu sein oder nicht, das heißt, selbst wenn sie die Entführung der Token-IDs per Skript durchgeführt und automatisch gesendet haben, könnten Sie überprüfen, ob die Zeit zwischen Klickereignissen automatisch erscheint. In letzter Zeit für einen Twitter-Account angemeldet? Sie verwenden passive menschliche Erkennung, die zwar nicht 100% idiotensicher, aber langsamer und schwieriger zu brechen ist. Jemand möchte wirklich Ihre Website hacken/spammen.

Wichtiger Schritt 2: strip out/URLEncode seltsame Zeichen, wenn Sie denken, dass dies Ihre Seite brechen wird. gemeinsam diejenigen, die Dinge sind "und" und brechen:

Ein anderer Weg: http://areyouahuman.com/

Solange Sie verwenden verschlüsselte Methoden Verifizieren Menschheit ohne crappy CAPTCHA ist possible.I bedeuten, ignorieren Sie nicht Ihre Header nicht. Dies sind kostenlose Möglichkeiten.

der Schlüssel ist genug Komplexität haben für ein NP-vollständiges Problem zu machen. http://en.wikipedia.org/wiki/NP-complete

wenn der Tag kommt, wenn AI mehrere komplexe menschliche Probleme selbst lösen können, werden wir haben andere Dinge, über die man sich Sorgen machen muss, als eine unbefugte Aufforderung.

http://louisville.academia.edu/RomanYampolskiy/Papers/1467394/AI-Complete_AI-Hard_or_AI-Easy_Classification_of_Problems_in_Artificial

Ein anderes Unternehmen interessante Forschung zu tun ist http://www.vouchsafe.com/play-games sie tatsächlich Spiele verwenden entworfen, um die RTT dazu verleiten, die RTT Ausbildung, wie nur Menschen mehr auflösbar zu sein!

Hier ist ein großer Artikel über NP-Hard-Probleme. Ich kann hier eine große Möglichkeit sehen: http://www.i-programmer.info/news/112-theory/3896-classic-nintendo-games-are-np-hard.html

+0

Hallo, viele gute Vorschläge krank lassen die Antwort für eine Weile offen. AreYouHuman ist brilliant! –

+0

Ich muss angeben, warum ich es offen lasse, denke ich ... Ich vermisse weitere Vorschläge, welche php-Funktionen verwendet werden, um zu filtern und zu sichern, dass das Formular "der richtige Weg" eingereicht und nicht verändert und/oder verwendet wird, um meine Website zu hacken oder senden Sie eine E-Mail an andere Personen (über die Website, um Spam an andere Personen zu senden). –