Enrico: Können Spam-Bots "readonly/disabled"-Felder manipulieren?

Hallo,

ich habe mehrere Seiten, in denen ich zuvor eingelesene (und natürlich validierte!) Feldinhalte in auf "readonly" gesetzte Felder anzeige.

Beim Weiterspringen zur jeweils nachfolgenden Seite werden die Feldinhalte via JavaScript ausgelesen.

Eventuell werde ich auf "disabled" wechseln. So deaktivierte Felder würden auf dem normalen Weg über PHP nicht gesendet werden, aber da ich dies über JavaScript bewerkstellige, wäre das kein Hindernis.

Können Spam-Bots auf "readonly" oder "disabled" gesetzte Felder manipulieren?

Wenn ja, dann müsste ich einen extra Spam-Schutz integrieren.
Wenn nicht, dann wäre das wunderbar.

Danke und Gruß,
Enrico

  1. Lieber Enrico,

    Spam-Bots kennen keine "Felder", sie kennen "Variablennamen". Diese belegen Sie mit Werten und senden diese mittels GET oder POST an Deinen Server. Das Formular wurde einmal nach Feldnamen durchforstet, ebenso nach der Send-Methode und der Zieladresse, der Rest ist reines HTTP. Was Du auf Deiner Seite mittels PHP auslieferst und was ein darin eingebettetes JS manipuliert, interessiert die Bots i.A. wenig.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Tach!

    Können Spam-Bots auf "readonly" oder "disabled" gesetzte Felder manipulieren?

    Das ist nur ein Attribut, das der Browser umsetzen muss/kann/sollte. Spambot ignorieren viel. Die können das interpretieren und dann leer lassen, aber auch einfach füllen. Wobei gesagt werden muss, dasssie nichts ausfüllen. Die schicken einfach Werte für die Feldnamen in ihrem Request ab.

    Wenn ja, dann müsste ich einen extra Spam-Schutz integrieren.
    Wenn nicht, dann wäre das wunderbar.

    Du kannst nicht davon ausgehen, dass Spambots Roboter sind, die hinter einem regulären Browser sitzen und Zeug in Formularfelder eintippen. Schau dir an, wie HTTP-Requests gemacht werden, insbesondere auch, wie Formulardaten versendet werden. Spambots erzeugen gleich solch einen Request, nachdem sie die relevanten Formulardaten (Namen der input-Elemente) aus dem HTML geparst haben.

    dedlfix.

  3. Hallo Felix und dedlfix,

    danke für eure Antworten.

    Ich hätte auf ein reines "Ausfüllen" der Spam-Bots gehofft, werde nun aber die Ausgaben (zusätzlich) absichern.

    Nochmals danke und Gruß,
    Enrico

    1. Ich hätte auf ein reines "Ausfüllen" der Spam-Bots gehofft, werde nun aber die Ausgaben (zusätzlich) absichern.

      Du machst da anscheinend sowieso einen ganz grundsätzlichen Fehler: Nie, nie, niemals darfst du davon ausgehen, dass Daten, die von außen reinkommen, in Ordnung sind. Es ist dabei insbesondere auch vollkommen wurscht, ob du diese Daten dreieinhalb Seitenaufrufe vorher mal

      natürlich validiert!

      hast - sobald sie deinen Server wieder verlassen haben, sind sie unsicher, manipulierbar, nicht vertrauenswürdig.

      Ich weiss nicht, was du vorhast, aber du solltest das Rad nicht neu erfinden wollen. Benutze, so möglich, eine Sitzung und gib die Daten bei jedem Seitenaufruf neu aus, anstatt sie jedesmal wieder auf eine Rundreise durch die pöse Welt zu schicken.

      1. Lieber Ralf,

        durch die pöse Welt zu schicken.

        das schreibt man mit einem "h": pöhse

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. durch die pöse Welt zu schicken.

          das schreibt man mit einem "h": pöhse

          Nö, die Böhsen Onkelz sind nicht so mein Ding, weder weltanschaulich noch als Rechtschreibvorreiter.

          1. Lieber Ralf,

            das schreibt man mit einem "h": pöhse

            Nö, die Böhsen Onkelz sind nicht so mein Ding, weder weltanschaulich noch als Rechtschreibvorreiter.

            deshalb schreiben die sich ja mit einem "weichen b". Aber in der Frage "user-submitted data" gilt immer noch der pöhse Pube, und der muss überhaupt niemals nicht Onkel gewesen sein, auch nicht im Plural...

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Hallo Ralf,

        Benutze, so möglich, eine Sitzung und gib die Daten bei jedem Seitenaufruf neu aus

        Das mache ich. Der Zugriff auf sensible Daten erfolgt nur über PHP-Session.

        Gruß,
        Enrico