Ankündigung

Einklappen
Keine Ankündigung bisher.

spamwords Abfrage fürs Gästebuch

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • spamwords Abfrage fürs Gästebuch

    Hallo,

    ich habe für mein Gästebuch eine Spamwords Abfrage und die funktioniert nicht, bekomme bei egal was ich im Textfeld eintrage die Meldung "Sorry, Ihr Eintrag enthält Spamwörter und wird nicht ins Gästebuch aufgenommen!"

    Im unteren Bereich stand vorher

    PHP-Code:
    if (eregi($spamword[$i],$string)) { 
    und das funktionierte nur unter php5, habe es ersetzt mit

    PHP-Code:
    if (preg_match("/$spamword[$i]/i",$string)) { 


    Was habe ich falsch gemacht?
    Kann mir bitte jemand helfen?

    VG
    Thomas

  • #2
    Zitat von thomasgerd Beitrag anzeigen
    Was habe ich falsch gemacht?
    Ui, das Script ist schon ein wenig älter. Super gruselig.

    PHP-Code:
    preg_match("/$spamword[$i]/i",$string
    Statt der /.../i würde ich heute eher {...}i nutzen. Und dann müsste man wahrscheinlich einmal sehen, wie die Spam-Words aussehen. Danach würde sich entscheiden, ob da irgendein spezieller regexp-Dialekt genutzt wird, den man noch anpassen müsste, oder/und ggf. noch preg_quote zur Hilfe genommen werden müsste.

    Der Beitrag gehört außerdem in den Anfänger-Bereich und da in das Nicht-Schwimmer-Becken, würde ich sagen .

    Kommentar


    • #3
      Du meist so?
      PHP-Code:
      if (preg_match("{$spamword[$i]}i",$string)) { 
      Das funktioniert leider auch nicht

      Die spamwords.dat sieht so aus:

      HTML-Code:
      #1
      100% more
      100% free
      100% satisfied
      Additional income
      Be your own boss
      Best price
      Big bucks
      Billion
      Cash bonus
      Cents on the dollar
      Consolidate debt
      Double your cash
      Double your income
      Earn extra cash
      Earn money
      Eliminate bad credit
      Extra cash
      Extra income
      Expect to earn
      Fast cash
      Financial freedom
      Free access
      Free consultation
      Free gift
      Free hosting
      Free info
      Free investment
      Free membership
      Free money
      Free preview
      Free quote
      Free trial
      Full refund
      Get out of debt
      Get paid
      Giveaway
      Guaranteed
      Increase sales
      Increase traffic
      Incredible deal
      Lower rates
      Lowest price
      Make money
      Million dollars
      Miracle
      Money back
      Once in a lifetime
      One time
      Pennies a day
      Potential earnings
      Prize
      Promise
      Pure profit
      Risk-free
      Satisfaction guaranteed
      Save big money
      Save up to
      Special promotion
      Act now
      Apply now
      Become a member
      Call now
      Click below
      Click here
      Get it now
      Do it today
      Don’t delete
      Exclusive deal
      Get started now
      Important information regarding
      Information you requested
      Instant
      Limited time
      New customers only
      Order now
      Please read
      See for yourself
      Sign up free
      Take action
      This won’t last
      Urgent
      What are you waiting for?
      While supplies last
      Will not believe your eyes
      Winner
      Winning
      You are a winner
      You have been selected
      Bulk email
      Buy direct
      Cancel at any time
      Check or money order
      Congratulations
      Confidentiality
      Cures
      Dear friend
      Direct email
      Direct marketing
      Hidden charges
      Human growth hormone
      Internet marketing
      Lose weight
      Mass email
      Meet singles
      Multi-level marketing
      No catch
      No cost
      No credit check
      No fees
      No gimmick
      No hidden costs
      No hidden fees
      No interest
      No investment
      No obligation
      No purchase necessary
      No questions asked
      No strings attached
      Not junk
      Notspam
      Obligation
      Passwords
      Requires initial investment
      Social security number
      This isn’t a scam
      This isn’t junk
      This isn’t spam
      Undisclosed
      Unsecured credit
      Unsecured debt
      Unsolicited
      Valium
      Viagra
      Vicodin
      We hate spam
      Weight loss
      Xanax
      Accept credit cards
      Ad
      All new
      As seen on
      Bargain
      Beneficiary
      Billing
      Bonus
      Cards accepted
      Cash
      Certified
      Cheap
      Claims
      Clearance
      Compare rates
      Credit card offers
      Deal
      Debt
      Discount
      Fantastic
      In accordance with laws
      Income
      Investment
      Join millions
      Lifetime
      Loans
      Luxury
      Marketing solution
      Message contains
      Mortgage rates
      Name brand
      Offer
      Online marketing
      Opt in
      Pre-approved
      Quote
      Rates
      Refinance
      Removal
      Reserves the right
      Score
      Search engine
      Sent in compliance
      Subject to…
      Terms and conditions
      Trial
      Unlimited
      Warranty
      Web traffic
      Work from home
      €€€
      $$$
      100% gratis
      100% kostenlos
      Sichere Anlage
      Bargeld
      Bargeld-günstig
      Begünstigter
      Cash
      Einkommen verdoppeln
      Einkommen von Zuhause
      Extra Bargeld verdienen
      Fondsmanagement
      Geld verdienen leicht gemacht
      Günstiger Kredit
      Günstige Refinanzierung
      Hypothek
      Ihr Zahlungsverzug
      Kostenlos
      Kontosicherheit
      Paypal
      Rechnung
      Rendite
      Senken Sie Ihre Hypothek
      Schulden beseitigen
      Verdienen Sie “x” pro Woche
      Versteckte Kosten
      Viel Geld sparen
      Visa/Mastercard
      Völlig kostenlos
      Von Zuhause arbeiten
      Black Jack
      Casino / Kasino
      Exklusive Gewinne
      Garantierter Gewinn
      Gewinnchance
      Gewinn einlösen
      Glücksspiel
      Glückwunsch
      Holen Sie Ihren Gewinn
      Ihr Geschenk
      Kein Scherz
      Kein Spam
      Keine Abzocke
      Klicken, um Ihr Geschenk
      Poker
      Risikofrei
      Sie haben gewonnen
      Sie sind ein Gewinner
      Sie wurden ausgewählt
      Spielgeld
      Wette
      Wetteinsatz
      Abnehmen über Nacht
      Besser im Bett werden
      Cellulite weg in XXX
      Drogen legal kaufen
      Falten entfernen
      Glatze weg in XXX
      Gras günstig kaufen
      Günstige Medikamente
      Haarausfall behandeln
      Leicht abnehmen
      Prognose
      Schnarchen behandeln
      Schnell Gewicht verlieren
      Sixpack über Nacht
      Sofort Gewicht verlieren
      Sofort „x“ Kilos verlieren
      Therapie
      Valium
      Viagra
      Weed günstig kaufen
      Wunderheilung
      Abverkauf
      Alles muss raus
      Angebot endet heute
      Angebot läuft „x“ ab
      Ausverkauf
      Begrenzte Zeit
      Chance nicht verpassen
      Countdown läuft
      Deal
      Discount
      Eilig
      Greifen Sie zu
      Jetzt kaufen
      Jetzt sichern
      Jetzt zugreifen
      Jetzt zuschlagen
      Kaufen, kaufen, kaufen
      Kräftige Rabatte
      Limitiertes Angebot
      Nur heute verfügbar
      Nur solange der Vorrat reicht
      Preissensation
      Preisknüller
      Schnäppchen
      Special Deal
      Sonderangebot
      Attraktiv
      Date
      Exklusives Kennenlernen
      Fetisch
      Freunde finden
      Heiße Männer/Frauen
      Lieber Freund
      Nicht mehr allein sein
      Nicht mehr einsam sein
      Nude
      Partner finden
      Partnerschaftsanfrage
      Sex
      Sexy
      Sexy Männer/Frauen
      Singles kennenlernen
      Traummann/Traumfrau
      Treffen
      Völlig harmlos
      Völlig unverbindliches Treffen
      Achtung!
      Bitte helfen Sie mir
      Dies ist kein Spam
      Dringend
      Endlich online
      Freier Zugang
      Für Sie
      Hier klicken
      Ihre angeforderten Informationen
      Jetzt anrufen
      Jetzt handeln
      Jetzt öffnen
      Jobangebot
      Kostenlose Info
      Neue Herausforderungen
      Nicht löschen
      Profis
      Sehen Sie sich dies an
      STOP
      Vergleichen
      Werden Sie Ihr eigener Chef
      Wie im Fernsehen gesehen
      Wir haben eine Stelle für Sie
      XXX

      Kommentar


      • #4
        Warum verwendest du überhaupt Regex für sowas? Ich seh da überhaupt keinen Mehrwert und macht es nur unnötig komplizierter.

        Kommentar


        • #5
          Da reicht doch eigentlich ein einfaches: PHP: stristr - Manual
          PHP-Code:
          if (false !== stristr($string$spamword[$i])) {
             
          $is_spam true;
              break;

          Kommentar


          • #6
            Cool danke Zeichen32, das hat funktioniert

            Kommentar


            • #7
              [selbst gelöscht]

              Kommentar


              • #8
                Zitat von fastix Beitrag anzeigen
                Ich habe hier schon einige Zeit ein eigenes Skript im Einsatz - und nur noch selten Spam, der durchkommt. Das sucht auch nach Links bzw. Webadressen, kruden Schreibweisen und dem Versuch, die Spamfilter durch numerische Entities zu täuschen.
                Da fehlt noch ein Hisweis wie "bitte nicht nachmachen".

                Kommentar


                • #9
                  [selbst gelöscht]

                  Kommentar


                  • #10
                    Zitat von fastix Beitrag anzeigen
                    Du wirst mich und die übrigen Leser bestimmt noch über Deine konkreten Bedenken informieren wollen - oder?
                    Ne, weiß nicht. Den Meisten wird das eh schon klar sein, denke ich.
                    • Weil (ungeachtet der Code-Qualität) so ein System einfach nur auf bestimmte Schlüsselbegriffe anspringt und nach einem bestimmten Muster pauschal Nachrichten verhindert. Es gibt keine Anleitung, was man mit dem True oder False machen sollte. Besser wäre, wenn man einen Nachrichten-Betreff mit sowas wie [SPAM] prefixt, aber die Erfahrung muss jeder User für sich selbst machen, nehme ich an /(falls das Kontaktformular dafür genutzt wird um Emails irgendwo hinzuschicken).
                      • Was denn, wenn ich tatsächlich eine Seite betreibe, bei der ich regelmäßig Links bekomme, weil das in dem Kontext auch Sinn macht?
                      • Die Auswahl der Begriffe in der Text-Datei sehen für mich auch nicht allgemeingültig aus. Das scheint eine sehr spezifische und teils absolut sinnlose Auswahl zu sein. Geachtet dem Prinzip das du da für die "known-words" anwendest, macht dann "trading" und "trading software" zusammen Sinn? Oder "casino" und "casino games".
                      • FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com sieht nach einer ziemlich selten anzutreffenden Kombination aus. Ist das wirklich an der Stelle ein allgemeingültiges Merkmal?
                      • Warum springt dein Skript auf kyrillische Zeichen an, nicht aber auf chinesische, japanische oder andere Schriftzeichen?
                      • strtolower ist für Groß- und Keinschreibung allgemein weniger gut geeignet (siehe Zeile 38 ).
                      • Man kann Beziehungen nicht ausdrücken. Beispielsweise dass ein bestimmtes Wort nur dann Spam ist, wenn auch ein anderes Wort davor oder danach im Text auftaucht.
                    • Das Skript für einen erfahrenen Entwickler 3-5 Minuten Arbeit bedeutet und keinen komischen Quatsch wie zwischen den Zeilen 45-58 und 66-73 macht. Was soll das? Du machst dir da doch die RegExp aus Zeile 20-30 kaputt?
                    • Nutzer, die nicht verstehen, was das Skript tut, werden davon enttäuscht.
                      • Ich wette, dass bei einem Echtwelt-Test in den allermeisten Fällen Spam durchgehen würde und in einigen Fällen ​​​​legitime Emails verhindert würden werden.
                    • Man kann den Kram nicht via Composer installieren und einfach eine Klassen-Datei in ein Projekt werden ... das war vor 2013 vielleicht noch ok. Seither aber eigentlich nicht mehr.
                    Was macht sein Skript eigentlich, was der folgende Code hier nicht auch macht?

                    PHP-Code:
                    <?php
                    $content 
                    '...';
                    $badwordPatterns file('bad-word-patterns.txt'FILE_IGNORE_NEW_LINES);
                    foreach(
                    $badwordPatterns as $badwordPattern) {
                        if(
                    preg_match(sprintf('{%s}ui'$badwordPattern), $content)) {
                            return 
                    true;
                        }
                    }
                    return 
                    false;
                    Es macht wahrscheinlich mehr Sinn, so was zu machen: https://www.webmasterpro.de/coding/a...ermeidung.html

                    Kommentar


                    • #11
                      [selbst gelöscht]

                      Kommentar


                      • #12
                        Besser du baust einfach ein Bild-Basiertes Captcha + Honeypot Captcha. Eine Keyword Blacklist ist zu unzuverlässig. Bei den meisten Spams werden URLs mitgesendet, also kannst du einfach alles was generell wie eine klickbare URL aussieht entfernen. Ganz wichtig wäre auch HTML Tags zu entfernen

                        Kommentar


                        • #13
                          Zitat von Moorleiche Beitrag anzeigen
                          Besser du baust einfach ein Bild-Basiertes Captcha
                          Das lösen heutige Bots schneller als Menschen und wenn du Menschen mit optischen Einschränkungen hast schliesst du diese evtl sogar aus. Also kein gute Idee.
                          Zitat von Moorleiche Beitrag anzeigen
                          Eine Keyword Blacklist ist zu unzuverlässig.
                          Nicht unbedingt. Es geht um ein Gästebuch, da haben einfach Begriffe aus der unteren Schublade der Apotheke oder Bankangebote nichts verloren. Ist aber nur meine Meinung.

                          Kommentar


                          • #14
                            Zitat von fastix Beitrag anzeigen
                            Es gibt tatsächlich keine “beste“ Lösung für das Spam-Problem.
                            Richtig. Sonst würde es auch nur einen abstrakten Lösungsweg mit darauf aufbauenden Lösungen geben.

                            Zitat von fastix Beitrag anzeigen
                            Und wenn Du es „anders“ machen würdest, dann ist das kein Fall von "bitte nicht nachmachen". Diese Worte wären bei einem erkannten Sicherheitsproblem oder erheblichen Dysfunktionen angemessen, voriegend also nicht.
                            Es geht nicht ums anders machen wollen sollen. Was für dich an Begriffen Spam ist, ist vielleicht nicht für Jeden gleichermaßen Spam.
                            Dieser Lösungsweg ist nicht für allgemeine Zwecke geeignet und im Prinzip ist es einfach nur ein Signal-Wort-Filter, der sofort anschlägt, wenn er einen Treffer hat. Und was sollte dann passieren, wenn ein Signal-Wort anschlägt? Sollte der Nutzer, der dir vielleicht was schicken will, nicht darauf aufmerksam gemacht werden, warum er dir etwas nicht schicken kann? Oder wird dem Nutzer einfach angezeigt, "Sorry geht nicht, weil... geht nicht"? Oder wird die Nachricht einfach Kommentarlos verworfen?

                            Zitat von fastix Beitrag anzeigen
                            Das Skript macht gar nichts mit Emails!
                            Das ist aber eine logische Folgeaktion von "Spam-Verhinderung", oder?
                            Ich glaube, ich habe schon seit Jahren nichts mehr geschrieben, was so war, wie ein Gästebuch, aber ich hatte mir auch immer eine Email geschickt, wenn es einen neuen Eintrag gab. Und Spam-Detection ist eben keine Domäne, die nur für Gästebücher gültig ist.

                            Zitat von fastix Beitrag anzeigen
                            Die ursprüngliche Fragestellung stellt - genau wie mein Skript - darauf ab, bekannten Spam zu erkennen.
                            Was das Skript aber nicht tut. Es gibt jede Menge bekannten Spam, der von diesem Skript in dieser Form nicht erkannt wird. Und eine Liste mit Links ist immer automatisch Spam.
                            Dein Skript heißt "SpamDetection". Es ist aber eher eine allgemeine Mustererkennung mit teils völlig wirkungslogen Mustern als Grundlage. Ich hatte beruflich schon oft mit Spam und dessen Folgen zu tun. Ich "arbeite" häufig mit Spam. Ich weiß, wie schnell Veränderungen in diesem Bereich passieren. Hast du eine Statistik darüber, wie viel Kontakt dein Skript tatsächlich abwehrt?

                            Zitat von fastix Beitrag anzeigen
                            Auch hier sind wir also im Bereich der Meinung. Vielleicht will sich der Fragesteller nicht auch noch mit dem Composer befassen, vielleicht kann (dafür gibt es ein Bündel von Gründen) er gar nicht mit diesem hantieren? Hinzu kommt: Auch mit dem Composer und der Nutzung toller Libarays kann man Montag bei „heise.de“ erwähnt werden oder am Dienstag nach einem Updateversuch auf Grund nicht erfüllbarer Abhängigkeiten mit einem kaputten oder unsicheren Webauftritt dastehen. Es kommt ja gerne mal vor, dass Libarys - sogar ganze und stark verbreitete Linux-Distributionen (Cent-OS, Scientific) - abgekündigt werden.
                            Ich könnte dazu jetzt ne Menge schreiben. Aber es würde nichts bringen.
                            Wer Composer auf solche Punkte reduziert hat den Grund nicht verstanden, warum man solche Dependency-Resolver-Systeme einsetzen möchte.

                            Kommentar


                            • #15
                              [selbst gelöscht]

                              Kommentar

                              Lädt...
                              X