Klaus: Formular SPAM gefährdet?

Hallo zusammen,

vielleicht ist das eine naive Frage, ich bin aber in dieser Sache nicht so bewandert:

Kann ein normales Formular auf einer Webseite, in der sich Besucher für einen Newsletter eintragen können, eigentlich zum Spammen mißbraucht werden?

Das Formular besteht nur aus dem Eingabefeld für die Email und einem "Eintragen" Button. Die eingetragene Email wird von einem PHP Script weiterverarbeitet.

Ich frage deshalb, weil ich auf immer mehr Seiten automatisch generierte Zeichen sehe, die man dann zur Bestätigung in ein Extrafeld eintragen muss.

Empfiehlt sich so eine Technik generell oder ist das mit Kanonen auf Spatzen schießen?

Was meint Ihr?

Dank & Gruss

Klaus

  1. Das ist ein botschutz und dient dazu, zu verhindern, dass sich irgendwelche robots in diene Mailingliste eintragen um dort Werbung zu machen.

    also gewissermassen ein schutz davor, dass die Mailingliste von robots als Verteiler benutzt werden kann.

    1. Moin

      also gewissermassen ein schutz davor, dass die Mailingliste von robots als Verteiler benutzt werden kann.

      Das ist totaler Quatsch...

      1. Hallo Freunde des gehobenen Forumsgenusses,

        also gewissermassen ein schutz davor, dass die Mailingliste von robots als Verteiler benutzt werden kann.

        Das ist totaler Quatsch...

        Was du sagst ist richtig aber dennoch nicht hilfreich.

        Du hättest auch einfach sagen können, dass es sich bei diesen Bildern um CAPTCHA handelt,
        die verhindern sollen dass Bots Spam in die Kommentare von Weblogs (o.ä. posten).

        Das wäre hilfreich gewesen.

        Gruß
        Alexander Brock

        --
        SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:? ss:| de:> js:( ch:| sh:( mo:} zu:}
        http://againsttcpa.com
        1. Danke Euch allen!

  2. Moin.

    Das Formular besteht nur aus dem Eingabefeld für die Email und einem "Eintragen" Button. Die eingetragene Email wird von einem PHP Script weiterverarbeitet.

    Ohne Kenntnis Deines Scripts kann man keine Aussage treffen. Grundsätzlich gilt: Verwende die von User eingetragenen Daten nie ungeparsed in Deinem Script.

    Ich frage deshalb, weil ich auf immer mehr Seiten automatisch generierte Zeichen sehe, die man dann zur Bestätigung in ein Extrafeld eintragen muss.

    Natürlich macht eine solche Technik es den Spammern schwerer, ein Script zu mißbrauchen. Eine andere Möglichkeit (die allerdings in jedem Falle eine Mail generiert): Sende an die Mailadresse, die eingetragen werden soll eine Mail, in der der Eintrag bestätigt werden muß.

    Empfiehlt sich so eine Technik generell oder ist das mit Kanonen auf Spatzen schießen?

    So augwändig sind beide Techniken nicht, Beipiele findest Du z.B. bei meine kleine Homepage - CodeSchnipsel

    Gruß Frank

    1. Moi
      Ohne Kenntnis Deines Scripts kann man keine Aussage treffen. Grundsätzlich gilt: Verwende die von User eingetragenen Daten nie ungeparsed in Deinem Script.

      Blah blah balah..

      Sorry, aber die PHP hat die die Eigenschaft Skripte immer zu parsen.

      Natürlich macht eine solche Technik es den Spammern schwerer, ein Script zu mißbrauchen. Eine andere Möglichkeit (die allerdings in jedem Falle eine Mail generiert): Sende an die Mailadresse, die eingetragen werden soll eine Mail, in der der Eintrag bestätigt werden muß.

      Schön das ganze automatisch über eine schlechtes Formular oder über ein schlechtes Skript. Damit hast Du Dein Formular dann klassisch zum spammen vorbereitet.

      So augwändig sind beide Techniken nicht, Beipiele findest Du z.B. bei meine kleine Homepage - CodeSchnipsel

      In den letzten Diskussionen wurden mehrfach die dort verwendeten Skripte analysiert, insbesondere die Formluarverarbeitung war mittelmäßig bis kritisch.
      Ich würde bis zur endgültigen Klärung ob die Probleme behoben sind die Skripte ausnahmslos nicht ungeprüft verwenden.
      TomIRL

      1. Moin.

        Sorry, aber die PHP hat die die Eigenschaft Skripte immer zu parsen.

        Bitte? Natürlich parsed PHP die Scripte, aber darum geht es gar nicht. Es geht um _Usereingaben per Formular_, die nie ungeparsed in einem Script verarbeitet werden sollten. Und wie Du unten richtig bemerkt hast, gibt es Scripte, die dies bei der Fromularverarbeitung nur ungenügend tun.

        Schön das ganze automatisch über eine schlechtes Formular oder über ein schlechtes Skript. Damit hast Du Dein Formular dann klassisch zum spammen vorbereitet.

        Nein. Das Script soll nur eine Mail an _eine_ Adresse schicken, wenn diese Adresse RFC-Konform ist, bei Eingabe von mehr als einer Mailadresse nix tun (bzw. einen geeigneten response code zurückliefern) und keine Änderung des Mailheader und -Body zulassen.

        So augwändig sind beide Techniken nicht, Beipiele findest Du z.B. ...
        In den letzten Diskussionen wurden mehrfach die dort verwendeten Skripte analysiert, insbesondere die Formluarverarbeitung war mittelmäßig bis kritisch.

        Und genau deshalb sind die nur als Beispiel (!) aufgeführt, denn auch hier gilt: Wer ungeprüft freie Scripte einsetzt, muß mit dem Mißbrauchsrisiko leben.

        Ich würde bis zur endgültigen Klärung ob die Probleme behoben sind die Skripte ausnahmslos nicht ungeprüft verwenden.

        genau, s.o.

        Gruß Frank

        1. Hallo agapanthus.

          Es geht um _Usereingaben per Formular_, die nie ungeparsed in einem Script verarbeitet werden sollten.

          Du hast anscheinend nicht ganz verstanden, auf was dich TomIRL (in einer zugegebenermaßen etwas rauh klingenden Formulierung) hinweisen wollte.

          Die Eingabedaten werden zwangsläufig geparst.

          Was du meinst ist eine Verarbeitung und Absicherung um ggf. kritische Inhalte bei den Eingabedaten unbedenklich zu machen.

          Das Script soll nur eine Mail an _eine_ Adresse schicken, wenn diese Adresse RFC-Konform ist, […]

          Viel Spaß beim Erstellen dieses regulären Ausdrucks / Skriptes.

          Einen schönen Mittwoch noch.

          Gruß, Ashura

          1. Hallo,

            Die Eingabedaten werden zwangsläufig geparst.

            Fragt sich nur, wogegen...

            Parst man die Eingabedaten zuerst gegen ihre Valids (um mal wieder ausländisch zu sprechen...)
            oder parst man die Eingabedaten sofort gegen die PHP Syntax

            LG
            Chris

            1. Hallo Chris.

              Die Eingabedaten werden zwangsläufig geparst.

              Fragt sich nur, wogegen...

              Diese Frage stellt sich eigentlich nicht.

              Parst man die Eingabedaten zuerst gegen ihre Valids (um mal wieder ausländisch zu sprechen...)
              oder parst man die Eingabedaten sofort gegen die PHP Syntax

              Sie werden geparst. Von PHP.

              Einen schönen Mittwoch noch.

              Gruß, Ashura

              1. Hallo,

                Sie werden geparst. Von PHP.

                Das möchte ich bezeifeln...
                Eingabedaten sind Parameter und werden vom Webserver ungeparst ins Environment vom PHP-Prozess gestellt. Erst, wenn das Script, bzw die blödsinnigen Voreinstellungen von PHP (reg Glob) dies anfordern, werden sie aus dem Environment in den direkten Scope des Scriptes gestellt. Geparst werden sie deshalb aber immer noch nicht.

                http://de.wikipedia.org/wiki/Parser

                Ein "Parser" ist ein Analysierer oder "Versteher". Die Parameter eines Scriptes werden aber lediglich _improtiert_, aber noch nicht analysiert.

                Ausnahmen bestätigen auch hier die Regel... Cookies werden z.B. fühzeitig abgetrennt und weiterverarbeitet. Wer ist für die Abtrennung verantwortlich?

                LG
                Chris

                1. Tag Chris.

                  Ein "Parser" ist ein [...] "Versteher".

                  Gibt es eigentlich Frauenparser?

                  Siech*konntenichtwiderstehen*fred

                  1. Hi,

                    Ein "Parser" ist ein [...] "Versteher".

                    Gibt es eigentlich Frauenparser?

                    Ich dachte, die hießen "Par_i_ser"

                    *scnr*

                    LG
                    Chris

                  2. Hallo.

                    Gibt es eigentlich Frauenparser?

                    Klar, und Arbeitslosengeldreceiver.
                    MfG, at

                2. Hallo Chris.

                  Eingabedaten sind Parameter und werden vom Webserver ungeparst ins Environment vom PHP-Prozess gestellt. Erst, wenn das Script, bzw die blödsinnigen Voreinstellungen von PHP (reg Glob) dies anfordern, werden sie aus dem Environment in den direkten Scope des Scriptes gestellt. Geparst werden sie deshalb aber immer noch nicht.

                  Dies hatte ich bereits als Grundlage voraus gesetzt; in meinem Szenario wurden die Daten aus POST oder GET also bereits aufgenommen.
                  Dies hätte ich verdeutlichen sollen, mein Fehler.

                  Die Parameter eines Scriptes werden aber lediglich _improtiert_, aber noch nicht analysiert.

                  Was wird aus Folgendem beim Abschicken eines zugehörigen Formulares?

                  <input type="checkbox" name="foo[]" />  
                  <input type="checkbox" name="foo[]" />
                  

                  Das bezeichne ich durchaus als vorzeitiges Parsen im Sinne von Verarbeitung.
                  Und das ohne dass auf die übermittelten Daten zugegriffen wurde.

                  Einen schönen Mittwoch noch.

                  Gruß, Ashura

                  1. Hi,

                    Was wird aus Folgendem beim Abschicken eines zugehörigen Formulares?

                    <input type="checkbox" name="foo[]" />

                    <input type="checkbox" name="foo[]" />

                    
                    >   
                    > Das bezeichne ich durchaus als vorzeitiges Parsen im Sinne von Verarbeitung.  
                      
                    Das ist lediglich eine Bereitstellung im Environment des PHP-Prozesses, der nun wiederum die Name-Value-Pärchen in ein anderes Format überführt, allerdings unabhängig von der \_Bedeutung\_ der  Daten  
                      
                    
                    > Und das ohne dass auf die übermittelten Daten zugegriffen wurde.  
                      
                    Eben genau das ist der Unterschied zu einem Parser. Dieser würde die Bedeutung der Daten anschauen und diese untereinander in Bezug setzen. Aus dem Ergebnis würde er dann die Aktionen ableiten.  
                      
                    Zugegeben: die Verarbeitung mehrfach vorhandener Name-Value-Pärchen stellt bereits eine gewisse "Analyse" dar. Diese ist hier aber immer noch vollkommen protkollkonform. Die Aufgaben des Environments werden dabei also gerade so nicht verlassen. Es werden nämlich keine speziellen Aktionen veranlasst, egal ob es 2 Elemente in einem Array ergibt, oder aber je 700 Elemente in 1.234 Arrays...  
                      
                    LG  
                    Chris  
                      
                    
                    
                    1. Hallo Chris.

                      Eben genau das ist der Unterschied zu einem Parser. Dieser würde die Bedeutung der Daten anschauen und diese untereinander in Bezug setzen. Aus dem Ergebnis würde er dann die Aktionen ableiten.

                      Ja, richtig; das ist bei dieser Vorstufe noch nicht gegeben.

                      Die Aufgaben des Environments werden dabei also gerade so nicht verlassen. Es werden nämlich keine speziellen Aktionen veranlasst, egal ob es 2 Elemente in einem Array ergibt, oder aber je 700 Elemente in 1.234 Arrays...

                      Das Anlegen eines Arrays (zudem auch noch über die Indizies steuerbar) ist im Grunde schon eine spezielle Aktion, wobei diese im Grunde beim Aufruf eines jeden Scriptes erfolgt (Systemvariablen).

                      Dass außerdem nichts weiter unternommen wird ist unstrittig, auch wenn eine ungünstige Konfiguration auch schon wieder hieran etwas ändert (Magic Quotes).

                      Einen schönen Mittwoch noch.

                      Gruß, Ashura

  3. Hallo zusammen,

    vielleicht ist das eine naive Frage, ich bin aber in dieser Sache nicht so bewandert:

    Kann ein normales Formular auf einer Webseite, in der sich Besucher für einen Newsletter eintragen können, eigentlich zum Spammen mißbraucht werden?

    Prinzipell ja, man kann alerdings einiges tun um dies zu verhindern.

    Ich frage deshalb, weil ich auf immer mehr Seiten automatisch generierte Zeichen sehe, die man dann zur Bestätigung in ein Extrafeld eintragen muss.

    Du solltest für Newsletter immer ein  double-opt-in Verfahren wählen, bei dem der User den Empfang dees Newsletters explizit bestätigen muß.
    Das hat aber mit Spamschutz in die andere Richtung zu tun.
    Die Bildchen verhindern zunächst mal das massenhafte absenden der Formulardaten. Wenn Dein Formular gut gebaut ist, dann sollte diese Maßnahme aber nicht explizit nötig sein.

    Viele Grüße TomIRL

    1. Als Ergänzung:
      die Diskussion wie Formulare Spamssicher zu machen sind ist in den letzten Wochen bis zum bitteren Ende geührt worden. Das Archiv die Suche und die Forumshauptdatei helfen weiter.

    2. Moin!

      Kann ein normales Formular auf einer Webseite, in der sich Besucher für einen Newsletter eintragen können, eigentlich zum Spammen mißbraucht werden?

      Prinzipell ja, man kann alerdings einiges tun um dies zu verhindern.

      Prinzipiell NEIN, man kann allerdings einiges programmieren, damit es dazu wird.

      Du solltest für Newsletter immer ein  double-opt-in Verfahren wählen, bei dem der User den Empfang dees Newsletters explizit bestätigen muß.

      "double opt-in" ist spammer-speak und meint auch was anderes. "confirmed opt-in" wäre die politisch und technisch korrekte Bezeichnung. Und die technische Umsetzung sendet dem angeblichen Interessenten eine Mail mit einem nicht erratbaren Link, den er besuchen muß, wenn er den Newsletter tatsächlich bestellen will - und sonst nicht.

      Das hat aber mit Spamschutz in die andere Richtung zu tun.

      Deshalb auch mein Widerspruch oben. Das Entgegennehmen von Formulardaten spammt grundsätzlich erst mal nicht - dazu muß man schon auf mangelhafte Weise eine Mail versenden, die sich durch Formulardaten manipulieren läßt.

      Die Bildchen verhindern zunächst mal das massenhafte absenden der Formulardaten.

      Nicht wirklich. Sie verhindern das _maschinelle_ Absenden von Formulardaten, indem sie menschliche Intelligenz zur Mustererkennung in Grafiken notwendig machen.

      Wenn Dein Formular gut gebaut ist, dann sollte diese Maßnahme aber nicht explizit nötig sein.

      Wenn das Formular keine ausnutzungswerte Funktion hat, sollte die Maßnahme nicht notwendig sein. Typische Anwendungsgebiete sind derzeit unter anderem Weblog-Kommentare (Linkspam für Google und Leser) und Anmeldungen für Freemailer (zum Spamversand).

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!
      1. Hallo,

        Du solltest für Newsletter immer ein  double-opt-in Verfahren wählen, bei dem der User den Empfang dees Newsletters explizit bestätigen muß.

        "double opt-in" ist spammer-speak und meint auch was anderes. "confirmed opt-in" wäre die politisch und technisch korrekte Bezeichnung. Und die technische Umsetzung sendet dem angeblichen Interessenten eine Mail mit einem nicht erratbaren Link, den er besuchen muß, wenn er den Newsletter tatsächlich bestellen will - und sonst nicht.

        Kann man dafür auch eine deutsche Bezeichnung / Beschreibung finden? Ich komm mit diesem Sprach-Spam nämlich allzu oft durcheinander.

        LG
        Chris

        1. Moin!

          "double opt-in" ist spammer-speak und meint auch was anderes. "confirmed opt-in" wäre die politisch und technisch korrekte Bezeichnung. Und die technische Umsetzung sendet dem angeblichen Interessenten eine Mail mit einem nicht erratbaren Link, den er besuchen muß, wenn er den Newsletter tatsächlich bestellen will - und sonst nicht.

          Kann man dafür auch eine deutsche Bezeichnung / Beschreibung finden? Ich komm mit diesem Sprach-Spam nämlich allzu oft durcheinander.

          Mir fällt da nichts Schlagwortartiges ein, was deutsch ist und passen könnte. "Bestätigte (Newsletter-)Bestellung" klingt unhandlich.

          - Sven Rautenberg

          --
          My sssignature, my preciousssss!
  4. Hallo,

    Ich frage deshalb, weil ich auf immer mehr Seiten automatisch generierte Zeichen sehe, die man dann zur Bestätigung in ein Extrafeld eintragen muss.
    Empfiehlt sich so eine Technik generell ...

    Das ist nicht ganz Deine Fragestellung, aber ich würde generell von CAPTCHAs abraten, zumindest in der Form, die derzeit benutzt werden. Dass schwer zu lesende Bilder eh nicht zugänglich sind, sollte klar sein, auch die kryptischen Buchstabenkombinationen sind im Sinne der Benutzerfreundlichkeit nicht wirklich toll. Das W3C diskutiert die Nachteile in einer neulich veröffentlichten Working Group Note.

    Wenn schon Turing Tests, dann würde ich da klassische Quizfragen wählen. Einfach zu lesen und einfach zu beantworten – und benutzerfreundlicher als den Besucher in einen kryptische Codes abtippenden Idioten zu verwandeln. Beispiele wären:

    • „Nenne den Vornamen von Gerhard Schörder.“

    • „Welche Farbe hat ein weißer Schimmel? ( ) weiß  () schwarz“

    • „Nenne die Anzahl der Evangelien.“

    Und so weiter. Man sollte sich natürlich einen Abend mal nach ein paar alkoholischen Getränken hinsetzen und einen Haufen in der Struktur und Beantwortung unterschiedlichen Fragen aufschreiben. Und am Morgen danach die Fragen auf Sinnigkeit und leichte Beantwortbarkeit durchgehen; schließlich soll es nur ein Formular sein, nicht Günther Jauch. Aus der Sicht des Ziels – automatische Agenten behindern – liefern solche Fragen ja das gleiche Ergebnis, eine Freigabe zu verschlüsseln, dass eine Maschine sie nicht oder nur unter Schwierigkeiten entschlüsseln kann, ein Mensch jedoch binnen Sekundenbruchteilen.

    Tim

    1. Hallo.

      Wenn schon Turing Tests, dann würde ich da klassische Quizfragen wählen. Einfach zu lesen und einfach zu beantworten – und benutzerfreundlicher als den Besucher in einen kryptische Codes abtippenden Idioten zu verwandeln. Beispiele wären:

      • „Nenne den Vornamen von Gerhard Schörder.“

      • „Welche Farbe hat ein weißer Schimmel? ( ) weiß  () schwarz“

      • „Nenne die Anzahl der Evangelien.“

      Und so weiter.

      Alternativ könnte man eine Kooperation mit einem Quizsender eingehen.
      MfG, at

    2. hi,

      • „Nenne die Anzahl der Evangelien.“

      Was für eine Barriere für Heiden, Atheisten und sonstige nicht-Christen willst du denn da aufbauen?

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hallo.

        • „Nenne die Anzahl der Evangelien.“

        Was für eine Barriere für Heiden, Atheisten und sonstige nicht-Christen willst du denn da aufbauen?

        Ich dachte, nur Analphabeten hätten mit der Antwort "n" ihre Schwierigkeiten.
        MfG, at