Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: ANLEITUNG: SPAM über die Kontoerstellung verhindern

    MasterChief

    • Mitglied
    • Beiträge: 182
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #15 am: 02. Juni 2019, 10:55:04
    Hmmm scheinbar zu früh gefreut, denn seit ich die Änderung gemacht habe (s.o.) kommt wieder Spam durch. Ich kann das aber nicht nachstellen, weiß also nicht wie die das schaffen.

    Der Nachname sieht z.B. so aus: http://blogs.bhandl.xx.xx/nic-Sa
    oder so: http://www.eventnn.xx/redir.php?

    also eindeutig mit http bzw. www und in meinen Versuchen bekomme ich da eindeutig eine Fehlermeldung....

    Kann mir jemand bitte kurz erläutern wo genau in dem Code die Wörter stehen müssen, die geprüft und AUSGESCHLOSSEN sein sollen? Danke

    viza

    • Mitglied
    • Beiträge: 108
    • Geschlecht:
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #16 am: 02. Juni 2019, 11:59:22
    Hallo, vielen Dank für die Tips.
    Ich habe für den Vornamen folgendes eingebaut. Mit der Änderung hinten dran zu $firstname funktioniert das dann auch wenn ein $ im Vornamen vorkommt (beispielsweise), es darf da also nicht $lastname lauten, sicher ein Flüchtigkeitsfehler aber ich wollte es hier bekanntmachen.
    [...]

    Hallo Masterchief,

    das ist kein Flüchtigkeitfehler, die Prüfung kann auf alle möglichen Inputfelder angewendet werden. Bei der vorliegenden Spam-Problematik waren die Felder "firstname" und "lastname" betroffen. Die angegebenen Code-Schnipsel sind beispielhaft.

    Welche Shopversion hast du denn im Einsatz?

    MasterChief

    • Mitglied
    • Beiträge: 182
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #17 am: 02. Juni 2019, 12:13:26
    Hm ok, php ist nicht 100% mein Ding bzw. kann ich mich nicht einarbeiten im Moment. Ich nutze noch die 1.05 SP1 Version auf php 5.3.3

    viza

    • Mitglied
    • Beiträge: 108
    • Geschlecht:
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #18 am: 02. Juni 2019, 13:16:57
    Oki doki!

    Also ich habe diese Passage in der create_account.php (auch in einem 1.05er Shop):

    Code: PHP  [Auswählen]
      if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
        $error = true;
        $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR);
      } elseif(preg_match("!^(http|https)?(://)?(www\.)?([a-z0-9\.-]{3,})\.[a-z]{2,4}(/)?$!i",$firstname) || !preg_match("#^[a-zA-ZäöüÄÖÜßÈÉÁÀéèà'`´ \.]+$#", $firstname)) {
        $error = true;
        $messageStack->add('create_account', ENTRY_FIRST_NAME_CHECK_ERROR);
      }
     
      if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
        $error = true;
        $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);
      } elseif(preg_match("!^(http|https)?(://)?(www\.)?([a-z0-9\.-]{3,})\.[a-z]{2,4}(/)?$!i",$lastname) || !preg_match("#^[a-zA-ZäöüÄÖÜßÈÉÁÀéèà'`´ \.]+$#", $lastname)) {
        $error = true;
        $messageStack->add('create_account', ENTRY_LAST_NAME_CHECK_ERROR);
      }

    Dann ab ich noch in der Sprachdatei (lang/german/german.php) weitere Definitionen angelegt:

    Code: PHP  [Auswählen]
    define('ENTRY_FIRST_NAME_CHECK_ERROR', 'Der eingegebene Vorname enth&auml;lt nicht zugelassene Zeichen.');
    define('ENTRY_LAST_NAME_CHECK_ERROR', 'Der eingegebene Nachname enth&auml;lt nicht zugelassene Zeichen.');
     

    Somit unterscheide ich auch in der Fehlermeldung zum Kunden zwischen zu kurzen Einträgen und unerlaubten Zeichen.

    Die Prüfungsstruktur enthält beide preg_matchs (für Webseiten und unerlaubte Zeichen). Das klappt eigentlich bisher ganz zuverlässig!

    p3e

    • Experte
    • Beiträge: 2.135
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #19 am: 02. Juni 2019, 13:37:58
    @viza: Du musst bedenken, dass die Domain auch aus zwei Buchstaben bestehen kann. Somit solltest Du statt:
    Code: PHP  [Auswählen]
    preg_match("!^(http|https)?(://)?(www\.)?([a-z0-9\.-]{3,})\.[a-z]{2,4}(/)?$!i", $lastname)
    folgendes nutzen:
    Code: PHP  [Auswählen]
    preg_match("!^(http|https)?(://)?(www\.)?([a-z0-9\.-]{2,})\.[a-z]{2,4}(/)?$!i", $lastname)

    Und wie ist das mit Umlautdomains?

    Solange der Spambot brav http bzw. https nutzt, reicht mir die simple Überprüfung auf http.

    viza

    • Mitglied
    • Beiträge: 108
    • Geschlecht:
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #20 am: 02. Juni 2019, 14:05:31
    Ja, da hast du wohl Recht. Dann ist die Angabe der "2" besser.
    Zu den Umlautdomains: Theoretisch ja. Hast du bei Spam-Angaben schon mal Umlautdomains bemerkt?
    Ansonsten kann man die Umlaute noch hinzufügen. Ich finde, in der vorliegenden Variante hat man 99% erschlagen. Welcher Spamer macht sich die Mühe und schafft sich Probleme mit Umlautdomains?

     :lol:

    MasterChief

    • Mitglied
    • Beiträge: 182
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #21 am: 02. Juni 2019, 14:57:19
    Die Spammer verpacken das http  mittlerweile mit vorangestelltem Text,  daher funktioniert die Prüfung scheinbar nicht?!  Ich konnte es heute mal nachstellen:

    Lautet der Nachname z.B. so
    malzumtest_http://Gantry.cofu.nzu

    dann kann man sich anmelden.....   schade !

    web-looks

    • Mitglied
    • Beiträge: 131
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #22 am: 02. Juni 2019, 14:58:26
    @viza: Deinen Ansatz zur Prüfung auf unerlaubte Zeichen finde ich ganz gut. Super auch mit der Ausgabe einer speziellen Fehlermeldung. :thumbs: Doch genau wie p3e denke ich, dass es etwas zu komplex ist. Für die URL reicht es vollkommen aus auf http/https zu prüfen, die ausführliche Variante zur Prüfung auf eine korrekte Webadresse nimmt nur unnötig Ressourcen in Anspruch und ist u.U. auch fehleranfällig.

    Bei der Prüfung auf unerlaubte Zeichen, würde ich das ganze Umdrehen. Also prüfen, ob NICHT erlaubte Zeichen enthalten sind, statt alle erlaubten aufzuzählen. Das verkürzt die regexp und man muss sich keine Gedanken um die Umlaute der verschiedenen Sprachen machen.

    Mein Vorschlag für die URL:

    Code: PHP  [Auswählen]
    preg_match("#http(s)?://#", $lastname)

    und für die unerlauten Zeichen:

    Code: PHP  [Auswählen]
    // check name for strange chars {} <> $ % @ # = ? ! ~ ^
    if (preg_match('/[\{\}<>\$%@#=\?!~\^]/', $lastname)) {
        // show error message
    }

    Um vollen Schutz zu gewährleisten, sollte die Prüfung auf unerlaubte Zeichen für folgende Felder eingebaut werden: firstname, lastname, street_address, city, suburb, state

    MasterChief

    • Mitglied
    • Beiträge: 182
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #23 am: 02. Juni 2019, 15:17:19
    Ich blicke langsam nicht mehr durch, kann mir jemand den fertigen Code posten nach dem Muster von  web-looks?
    Ist das für Vorname oder Nachname oder für beides usw.?

    p3e

    • Experte
    • Beiträge: 2.135
    Re: ANLEITUNG: SPAM über die Kontoerstellung verhindern
    Antwort #24 am: 02. Juni 2019, 16:33:03

    Die Spammer verpacken das http  mittlerweile mit vorangestelltem Text,  daher funktioniert die Prüfung scheinbar nicht?!  Ich konnte es heute mal nachstellen:

    Lautet der Nachname z.B. so
    malzumtest_http://Gantry.cofu.nzu

    dann kann man sich anmelden.....   schade !
    In meiner Version kann man sich damit nicht anmelden.
    17 Antworten
    7378 Aufrufe
    21. September 2017, 12:56:33 von Modulfux
    0 Antworten
    994 Aufrufe
    13. Februar 2016, 11:40:18 von bautti
    4 Antworten
    8288 Aufrufe
    26. Januar 2017, 12:18:26 von Jonas