Spamschutz für eigene Scripte?

Diskutiere mit über: Spamschutz für eigene Scripte? im Web-Programmierung Forum

  1. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Hallo,

    ich würde gerne ein PHP-Script absichern, damit es nicht per Get- bzw. POST-Injections als Instrument für Spammer missbraucht werden kann. Ich benutze die Mailfunktion von PHP, also mail(....);, nachdem die Daten von einem Formular übernommen werden.

    Hat jemand eine Idee oder Anleitung, wie ich das am besten bewerkstellige?

    Danke,

    Frank
     
  2. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Da gibt es verschiedene Ansätze.

    Ein Grundgedanke besteht darin, alle Benutzereingaben als potentiell verseucht zu behandeln.
    Das heisst, man überlegt sich genau, welche Benutzereingaben man zulassen kann/muss/möchte und prüft dann, ob die tatsächliche Eingabe den Kriterien entspricht.

    Wenn es zum Beispiel ein Feld gibt, in dem der Benutzer seine Emailadresse eingeben darf, prüft man, ob die Eingabe dem Muster einer einzielnen Emailadresse entspricht und nicht etwa so etwas beinhaltet:
    "someoneelse@domain.com\nbcc: secretaddress@myhome.dom" (nur so als schnelles Beispiel)

    GET würde ich bei solchen Formularen grundsätzlich nicht verarbeiten
     
  3. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Danke maceis.

    Ich schicke die Benutzereingaben nach einer ersten Filterung durch Actionscript im Flash per Loadvars an das mailer.php Script, das passiert mittels GET, jedoch erfolgt der Ausruf aus dem SWF-File heraus. Muss ich mir da Sorgen machen?

    Die Filter im Flash prüfen die Eingaben komplett durch, d. h. die eMail-Adresse auf Korrektheit und den Text.

    Eine andere Sache: Wenn jemand den Namen meines mailer.php Scriptes kennt, kann man das Script dann von einer anderen Domain aus ausrufen und mit Variablen, die einen Header etc. bilden, injizieren? Das heisst, muss ich im PHP Script noch mal alles durchprüfen?

    Frank
     
  4. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Man kann das Skript grundsätzlich von einer anderen Doamin aus benutzen. Das kannst Du aber mittels einer geschickt konfigurierten .htaccess Datei weitestgehend unterbinden. (Mit Bedingungen).

    Dass man zusätzliche Variablen einschmuggeln kann, die dann von Deinem Skript verarbeitet werden, ist nach meinem Kenntnisstand im Normallfall nicht möglich, es sei denn Dein Skript legt es darauf an, beliebige Variablen auszuwerten.
    Was dann mit den Variablen gemacht wird, hängt auch wieder von Deinem Skript ab.
     
  5. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Selbstverständlich. Clientseitig geprüften Daten sollte man nie ver-
    trauen, mit Curl zum Beispiel, oder eben Telnet, kann man beliebige,
    ungeprüfte Daten an Scripte schicken.

    Edit: Maceis war wieder schneller, und ausführlicher....
     
  6. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Ok, verstehe. Dann kann ich mit einer .htaccess Datei schonmal Schindluder verhindern. Wo kann ich mich da belesen, was ich da reinschreiben muss?

    Meine Variablen haben natürlich Namen, die dann per mail-Funktion weitergeschickt werden. Das jemand genau die Namen der Variablen "errät" und dann mein Script benutzt ist unwahrscheinlich oder?

    Frank
     
  7. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Und was, wenn der Sender des Formulars auch den Referer fälscht?
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Die Basics kannst Du zB bei selfhtml nachlesen. Es gibt aber jede Menge andere Infomationsquellen.
    Eine Idee wäre z.B mit einer RewriteCond den HTTP_REFERER abzufragen. Wenn es nicht deine Seite ist, leitest Du die Anfrage auf eine Fehlerseite.
    Das ist zwar nicht vollständig fälschungssicher, aber den größten Teil der Roboter bist Du damit wohl los.
    Grundsätzlich könnte man das auch innerhalb des Skriptes lösen, .htaccess greift aber früher.

    Wie das bei flash/swf ist, weiss ich nicht. Bei einem normalen HTML Formular kann man die Variablen Namen (genauer die Namen der Input Felder) aus dem Quelltext herauslesen.
    Wenn das Skript sicher ist, ist das aber kein wirkliches Problem (oder anderes herum, weil das so einfach ist, muss das Skript sicher sein).

    Da fällt mir eben ein, es gibt doch in PHP eine Klassenbibliothek zum Versenden von Emails. Ich arbeite meist mit Perl, darum weiss ich den genauen Namen nicht mehr.

    [edit]@moses
    Das kann man nicht ausschließen, ist nach meinem Kenntnisstand aber nicht weit verbreitet.
    Ganz sicherstellen kann man mW nie, dass der "Client" nicht das ist, was er scheint. Geschickt programmierte Roboter können alles imitieren, was normale Webclients auch machen würden.
     
  9. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    Registriert seit:
    25.07.2004
    Verstehe nur Bahnhof :)
    So weit ich weiss, werden HTTP_REFERER doch nicht von allen Browsern übertragen oder?

    Die Variablen sind nicht ohne Reverse Engeneering rauszufinden, das SWF müßte dekompiliert werden - zu umständlich.

    Dann werde ich mal in dem Münz rumwühlen...

    Frank
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Wer sich nicht ans Protokoll hält, kann Dein Formular dann leider nicht benutzen.
     
Die Seite wird geladen...
Ähnliche Themen - Spamschutz eigene Scripte Forum Datum
eigene Scrollbar Web-Programmierung 10.12.2012
Eigene "Eventkalender-Seite" erstellen -> Template/Vorlage? Web-Programmierung 17.01.2012
jQuery Validate - Eigene Fehlermedlungen erstellen Web-Programmierung 07.09.2011
WM - Tippspiel für eigene Seite? Web-Programmierung 29.05.2010
Wie eigene Homepage mit Passwort schützen? Web-Programmierung 29.09.2009

Diese Seite empfehlen

Benutzerdefinierte Suche