Christoph Schnauß: Nochmals: Gästebuch-Spam

hallo Forum,

ich hatte Ende Februar einen Thread zu diesem Thema eröffnet, der natürlich längst im Archiv verschwunden ist - hatte sich ein bißchen totgelaufen.

Das Thema war auch ein paar Wochen nicht mehr relevant. Seit zwei Tagen jedoch habe ich wieder solchen Gästebuch-Spam und stehe immer noch vor demselben Problem. Was mir da eingetragen wird, habe ich mal unter http://www.christoph-schnauss.de/kontakt/gastb_spam.php deutlich zu machen versucht - es ist bissel zusammengeschnitten, da man ja nun wirklich nicht _alle_ diese Spam-Einträge braucht, um zu verstehen, worum es geht. Ein paar von den alten Einträgen aus Februar/März sind da zum besseren Verständnis auch noch enthalten.

Das zur Zeit zugrundeliegende Script gibts in einer Rohfassung auch unter http://www.christoph-schnauss.de/prog/php/php06.php - das ist möglicherweise nicht absolut aktuell, da ich gestern und heute ein bißchen - entsprechend den Hinweisen aus dem alten Archiv-Thread - noch an den RegExpressions herumzuschrauben versucht habe. An den Server-logs kann ich gelegentlich sehen, daß ein "POST" nicht funktioniert hat, aber diese Diagnose reicht nicht aus. Der eine oder andere "bot" schafft es trotzdem.

Ich stehe immer noch vor dem Problem, daß ich nicht sicher bin, wie ich sowas bekämpfen kann. Der Weg scheint zu sein, daß diese Spam-Scripts, wenn sie denn einmal den Weg zu meinem Provider gefunden haben, als "Text" auch immer Links in der Form von BBCode einzutragen versuchen. Außerdem tragen sie regelmäßig maskierte Links ein, in denen anstelle von "<" eben "&lt;" verwendet wird - um sicherzugehen, daß irgendeine dieser Eintragungen zu einem anklickbaren Verweis führt. Ich müßte nun irgendeinen Weg finden, derlei Eintragungen anhand solcher spezieller "Links" rauszufiltern, aber da komme ich im Moment nicht weiter. Vielleicht hat noch jemand eine Idee.

Natürlich kann ich das gesamte Gästebuch auch rauswerfen. Ich schleppe es jedoch schon ein paar Jahre mit mir, da trennt man sich nicht so leicht von liebgewordenen Gewohnheiten.

Erstaunlicherweise ist noch keiner von den Spam-bots auf die Idee gekommen, nach mail-Formularen zu suchen. Sowas hab ich ja auch. Da gibts bloß alle paar Monate mal irgendjemand, der mir unsinniges Zeugs schreibt, also unverständliche Texte. Sonst wird das Formular mit relativ hoher Frequenz von Leuten genutzt, die sich "normal" benehmen und tatsächlich irgendwas von mir wollen - und genau für diese Clientel ist das Formular ja auch da (es hat mir sogar bereits hie und da "vergütungspflichtige" Kontakte eingebracht). Dort sind nahezu identische RegExpressions verwendet worden wie im Gästebuch, und zum allergrößten Teil scheinen die auch so zu wirken, wie sie sollen, Spam mit Werbecharakter hatte ich da noch nie, "Unsinn" allerdings schon (ähm ... ich kenne euch Rasselbande ja. Ihr müßt das jetzt nicht ausprobieren und mich mit Unsinn zumailen).

Einen anderen Weg, als über RegExpressions eben Bedingungen zu formulieren, wer schreiben darf und wer nicht, sehe ich nicht. Ich kann natürlich auch Header und IP-Adressen der Spam-bots im log ausfindig machen und versuchen, die dann über .htaccess o.ä. zu blocken, aber dieser Weg ist nicht zuverlässig. Nicht nur, daß die IP-Adressen immer unterschiedlich waren, sondern es geht auch um die im Thread ?t=128779&m=832276 von Sven vorgetragenen Sachverhalte.

Grüße aus Berlin

Christoph S.

ss:| zu:) ls:& fo:) va:) sh:| rl:|

-- Visitenkarte
  1. Hallo,

    ich weiß jetzt nicht, ob du diese Hinweise schon versucht hast:
     - versteckte Formularfelder
     - Bestätigungsseite mit versteckten Links/Buttons
     - Verhältnis von Links zu Text
     - JavaScript zum Erzeugen von "was auch immer wichtig ist für dein Formular"
     - benötigte Zeit vom Anfordern bis zum Abschicken des Formulars

    Mehr fällt mir gerade nicht ein. Wenn etwas unklar ist, dann frag nach - hab noch nen bisschen Rotwein =)

    Grüße, Ulli

    1. hallo Ulli,

      ich weiß jetzt nicht, ob du diese Hinweise schon versucht hast:
      - versteckte Formularfelder
      - Bestätigungsseite mit versteckten Links/Buttons
      - Verhältnis von Links zu Text

      Ja, das läuft durch, wenn du dir mein Script angeschaut hast.

      • JavaScript zum Erzeugen von "was auch immer wichtig ist für dein Formular"

      Javascript ist hier irrelevant.

      • benötigte Zeit vom Anfordern bis zum Abschicken des Formulars

      Ups? Wie meinst du das? Und was könnte das für Auswirkungen zum Überwinden der vorhandenen RegExpressions haben?

      hab noch nen bisschen Rotwein =)

      Oha, na da bist du ja an der richtigen Adresse. Welchen hast du denn? Ich bin heute mal ausnahmsweise auf meinen Schlehenwein von 2001 ausgewichen, statt den sonst standardmäßigen Holunderwein zu nehmen.

      Grüße aus Berlin

      Christoph S.

      ss:| zu:) ls:& fo:) va:) sh:| rl:|

      -- Visitenkarte
      1. Hallo,

        Ja, das läuft durch, wenn du dir mein Script angeschaut hast.

        Nicht wirklich - aber mach ich gleich noch.

        Javascript ist hier irrelevant.

        Ok.

        • benötigte Zeit vom Anfordern bis zum Abschicken des Formulars

        Ups? Wie meinst du das? Und was könnte das für Auswirkungen zum Überwinden der vorhandenen RegExpressions haben?

        Keine. Aber wenn in meiner Datenbank steht, dass ein Formular angefordert wurde und dieses schon 1 - 2 Sekunden danach wieder abgespeichert werden will, dann stimmt etwas nicht. In der Art meine ich das.

        Welchen hast du denn?

        Nen 08/15 Merlo Veneto ... ist aber sehr süffig.

        Grüße, Ulli

        1. Hallo,

          darf hier jeder mitmachen, der einen Rotwein hat?

          Gilt ein Spätburgunder aus Rheinhessen auch? Naja gut, dann eben nicht.

          Ich habe auch seit einiger Zeit Quatsch im Gästebuch. Habe das Programm so geändert, dass im Gästebuch zunächst der Text erscheint "Noch nicht freigegeben".

          Per Mail geht der Eintrag an mich in dieser Form:

          Betr. Ihr Gaestebuch bei www.aktivferien.de:

          sky hat am 03.05.06 12:35 folgendes eingetragen:
          --------------------------------------
          Super Seite mach weiter so, kann sich sehen lassen.

          Schau mal auf meiner neuen Page vorbei, kannst dich dort eintragen!
          inkl Banner
          Es lohnt sich auf jeden fall für dich und deiner Page

          Bis dann :-)
          www.manyscout.de
          --------------------------------------
          Freigeben: http://www.aktivferien.de/gast.php?ow=1&lg=1&action=frei&id=70
          Loeschen: http://www.aktivferien.de/gast.php?ow=1&lg=1&action=loe&id=70

          Diese Meldung wurde automatisch erzeugt, bitte keine Antwort an den Absender!

          http://www.aktivferien.de/gast.php?ow=1&lg=1

          Seitdem ist der Quatsch mit einem Mausklick erledigt. Und die dummen Einträge werden immer weniger.

          So, jetzt aber ein Glas Spätburgunder.

          Lieben Gruß, Kalle

          1. Hallo!

            Loeschen: http://www.aktivferien.de/gast.php?ow=1&lg=1&action=loe&id=70

            Un womit stellt du sicher, dass niemand einfach die id auf 69 ändert und somit Eintrag Nr. 69 raus löscht?

            mfg
              frafu

            1. Hallo,

              Un womit stellt du sicher, dass niemand einfach die id auf 69 ändert und somit Eintrag Nr. 69 raus löscht?

              Natürlich wird die Seite durch ein Passwort geschützt, so mache ich das auch in meiner Weblogsoftware.

              Grüße
              Jeena Paradies

              -- Gute alte CSS-Hacks | Jlog | Gourmetica Mentiri
              1. Hallo!

                Un womit stellt du sicher, dass niemand einfach die id auf 69 ändert und somit Eintrag Nr. 69 raus löscht?

                Natürlich wird die Seite durch ein Passwort geschützt, so mache ich das auch in meiner Weblogsoftware.

                Ah! Ich hab Kalle_Bs Posting falsch verstanden. Ich dachte derjenige der den Gästebucheintrag verfasst hat, bekommt ein Mail und muss bestätigen oder kann den Eintrag wieder löschen!
                Der Admin bekommt das Mail, dann ist alles klar!

                Naja, wenn da ein Spambot kommt und gleich mal 100 Einträge absetzt, wird das löschen aber auch zur Qual.

                Ich würde da eher auf Lösungen setzen die gar keine Einträge von Spambots zulassen.
                Da gabs doch hier im Forum schon einige sehr gute Erklärungen dazu. Versteckte Felder die nicht ausgefüllt werden dürfen usw.

                mfg
                  frafu

                1. Hi FraFu,

                  Naja, wenn da ein Spambot kommt und gleich mal 100 Einträge absetzt, wird das löschen aber auch zur Qual.

                  Dafür gibt es dann ja ein Admin-Center, wo man alle bequem auf einmal löschen kann ;-)

                  Anbei eine Frage - hat schon mal jemand mit Javascript so etwas realisiert, dass man mit der Maus einen Rahmen über die Liste der vorhandenen Einträge aufziehen kann und so eine bequeme Mehrfachauswahl vornehmen kann?

                  Oder Alternativ: Alle Einträge in einer Tabelle aufgelistet und durch Anklicken der Einträge lasst sich durch drücken der Shift-Taste mehrere markieren, durch drücken der Strg-Taste einzelne - wie z.B. im Windows Explorer.

                  MfG, Dennis.

                  PS: Ein <select> mit Mehrfachauswahl schließe ich jetzt mal aus, weil dies nicht die Möglichkeit bietet alle Daten zu jedem Datensatz (Datum, Autor, ID, Textauschnitt, ...) übersichtlich anzuzeigen.

                  MySQLDBExport - Eine PHP Klasse für MySQL Dumps
                  3 Kölnfans - www.schaumerlmal.de

                  -- Mein SelfCode: [ie:{ fl:( br:> va:) ls: fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
  2. Hallo Christoph,

    Das zur Zeit zugrundeliegende Script gibts in einer Rohfassung auch unter http://www.christoph-schnauss.de/prog/php/php06.php

    Du bist ganz schön mutig!

    Natürlich kann ich das gesamte Gästebuch auch rauswerfen. Ich schleppe es jedoch schon ein paar Jahre mit mir,

    das erklärt so manches, aber ...

    da trennt man sich nicht so leicht von liebgewordenen Gewohnheiten.

    ... Du solltest es vielleicht von Grund auf renovieren. D.h. am besten: neu schreiben.

    Warum?
    Dein Skript ist in jeder Hinsicht verbesserungswürdig. Du begehst hier (halt in Jahren gesammelt) viele der Fehler, die hier Woche für Woche bemängelt werden. Es ist geradezu ein Prachtstück, ich notiere das, was mir beim ersten Überfliegen aufgefallen ist:

    Deine einzige Funktion trägt den aussagekräftigen Namen "speichern()", ansonsten handelt es sich um Spaghetticode, der das Debuggen zu einer Qual macht. Dazu vermengst Du Verarbeitung und Ausgabe, was es noch schwieriger macht. Dazu Formatierung mit veralteten Attributen und Inline-CSS in einem Tabellenlayout. Es ist wirklich ein Paradebeispiel für die Probleme, die unsemantisches HTML mit sich bringt. Nichts ist zu finden.

    Zum PHP: Wie wäre es mit dem typischen Wert für error_reporting, nämlich ALL. Du weist den Inhalt von $_POST-Elementen Variablen zu, aber nur wenn es $_POST gibt. Nun könnte jemand Dein Skript auf andere Art und Weise füttern. Bei register_globals = "on" (Du hast Dich im letzten Jahr mindestens einmal als Verteidiger dieser Einstellung geoutet) sind Deine Variablen auch da und mit anderen Werten belegt, als Du dies vermutest. Ob sich das im weiteren Verlauf auswirkt, sei dahingestellt. Du solltest

    a) auf Elemente der superglobalen Arrays stets in der Form
       $_POST['key'] oder $_GET['key'] zugreifen und diese nicht
       überflüssigerweise und dazu in gefährlicher Form anderen
       Variablen mit "naheliegenden" Namen zuweisen. Eine Empfehlung,
       die Du hier bestimmt mehrfach in der Woche lesen kannst.

    b) grundsätzlich _alle_ Variablen initialisieren.

    c) in Deiner Funktion schreiben() machst Du es ja noch schlimmer.
       Hier greifst Du völlig unmotiviert auf das Array $GLOBALS zu.
       Warum? Du willst diese Inhalte per POST haben, also greife
       gefälligst auch auf $_POST zu. Verlasse Dich nicht auf GPC :-)

    d) Deinen Dateiinhalt schreibst Du als formatierten HTML-Text weg.
       Prima, das ist bequem, klar. Änderungen des Layouts sind nur
       mühsam machbar, Du hast Dich hier selbst in eine Sackgasse
       manövriert. Natürlich sollte es mit vertretbaren Aufwand möglich
       sein, den Inhalt der Einträge vom Layout zu trennen und nur noch
       den Inhalt zu speichern, nicht aber die Darstellung.

    e) Trenne Dein Skript sauber in einzelne Aufgaben auf, z.B. für die
       Überprüfungen. Schreibe für die Aufgaben Funktionen. Kommentiere
       Deinen Code. Nein, er kommentiert sich nicht von selbst. Das ist
       nicht angebrachter Optimismus.

    Ob Du das nun objektorientiert in PHP5 oder in prozeduraler Programmierung erledigst, das ist gleichgültig. Mach es neu! Mach es richtig[tm]. Beachte die vielen Hinweise, die Du hier im Forum seit Jahren immer wieder, zum Teil gebetsmühlenhaft lesen konntest, vielleicht sogar selbst gegeben hast.

    Diesem Code hier ist für mich nicht auf Anhieb zu entnehmen, wo die bots ansetzen, dazu ist Dein Code zu unübersichtlich. Möglichkeiten gibt es einige, welche ist mit Sicherheit von Deiner PHP-Konfiguration abhängig.

    <gebetsmühle>Schreibe es neu!</gebetsmühle>

    Mahlende Grüße

    Vinzenz

    1. Hallo Ingrid,

      manches fällt einem erst hinterher ein:

      c) in Deiner Funktion schreiben() machst Du es ja noch schlimmer.
         Hier greifst Du völlig unmotiviert auf das Array $GLOBALS zu.
         Warum? Du willst diese Inhalte per POST haben, also greife
         gefälligst auch auf $_POST zu. Verlasse Dich nicht auf GPC :-)

      Du hattest Dich doch damals über das Datumsformat gewundert und behauptet, Dein Skript verwende ein fest vorgegebenes Datumsformat. Hättest Du damals schon Deinen Code herausgerückt, hätte man Dir damals schon sagen können, dass Du _genau_ die Formulareingabe _unverändert_ wegschreibst:

        $zeit = $GLOBALS['zeit'];   // [...] irrelevanter Code der den Inhalt von $zeit nicht verändert.   $tabelle = $irgendwas . $mail.$url.$ort.$zeit. $sonstwas;

      Das schreibst Du genauso weg. Genauso wie die Eingabe. Völlig unverändert. Du wunderst Dich? Ich mich nicht. Wenn Du wegschreibst, dann schreibst Du die ungefilterte Eingabe weg (oder habe ich irgendwo einen Schreibzugriff auf $_POST-Elemente oder $_GET-Elemente übersehen?).

      Freundliche Grüße

      Vinzenz

    2. hallo Vinzenz,

      Du bist ganz schön mutig!

      "mutig" war, daß ich es so zum Anschauen hergestellt habe, ich hab auch lange genug gezögert, ob ich mir die zu erwartende Schelte einfangen soll *g*

      ... Du solltest es vielleicht von Grund auf renovieren. D.h. am besten: neu schreiben.

      Natürlich. Das ist auch Absicht. Sonst hätte ich nicht nochmal nachgefragt.

      Deine einzige Funktion trägt den aussagekräftigen Namen "speichern()"
      Zum PHP: Wie wäre es mit dem typischen Wert für error_reporting, nämlich ALL.
      [...]

      Alles richtig, und alles auch "angekommen". Nur erklären deine Anmerkungen nicht wirklich, wo diese blöden "bots" eine Angriffsstelle finden. Daß sie nach Elementnamen suchen, ist klar. Das reicht aber nicht.

      Bei register_globals = "on" (Du hast Dich im letzten Jahr mindestens einmal als Verteidiger dieser Einstellung geoutet)

      Nur für meinen lokalen Rechner, aber nicht für das, was online steht. Im übrigen hat sich das durchaus geändert, spätestens seit PHP5, und "damals" hatte ich diesen Gästebuchspam auch noch nicht. Sonst wärs mir eher aufgefallen.

      Diesem Code hier ist für mich nicht auf Anhieb zu entnehmen, wo die bots ansetzen [...] Möglichkeiten gibt es einige, welche ist mit Sicherheit von Deiner PHP-Konfiguration abhängig.

      Es ist leider nicht "meine", sondern die des Proviers, und phpinfo() mag ich verständlicherweise nicht zugänglich machen.

      <gebetsmühle>Schreibe es neu!</gebetsmühle>

      <gähn>jaja, schon gut, mach ich doch. Ich wollte nur den "Schwerpunkt" wissen, den ich im Moment eben bei den RegExes gesehen habe</gähn>

      Mahlende Grüße

      öhhhhh ... was "mahlst" du denn jetzt?

      ;-)

      Grüße aus Berlin

      Christoph S.

      ss:| zu:) ls:& fo:) va:) sh:| rl:|

      -- Visitenkarte
      1. Hallo Christoph,

        Du bist ganz schön mutig!

        "mutig" war, daß ich es so zum Anschauen hergestellt habe, ich hab auch lange genug gezögert, ob ich mir die zu erwartende Schelte einfangen soll *g*

        hehe. Ja, das kann ich nachvollziehen. So ziemlich jeder hat ein paar Leichen im Keller, auch ich :-)

        Alles richtig, und alles auch "angekommen". Nur erklären deine Anmerkungen nicht wirklich, wo diese blöden "bots" eine Angriffsstelle finden. Daß sie nach Elementnamen suchen, ist klar. Das reicht aber nicht.

        Lies mein Ingrid-Posting. Wenn Deine formalen Bedingungen erfüllt sind, dann schreibst Du ungefiltert die Eingabe weg. Wo siehst Du das Problem für die bots? (Ich habe mir Deine Prüfungen nicht wirklich angeschaut, so etwas gehört sauber kommentiert in eine Funktion). Du kennst doch Gunnars und seths Ausdrücke für die Prüfung einer Datumseingabe im ISO-Format?

        Mahlende Grüße

        öhhhhh ... was "mahlst" du denn jetzt?

        och immer noch mit der Gebetsmühle:

        Schreib' es neu, Schreib es neu, ... (da capo al fine) :|| [1]

        Freundliche Grüße

        Vinzenz

        [1] Ich kenne mich mit Partituren nicht aus, ich ziehe Partitionen vor :-)

        1. hallo Vinzenz,

          Wo siehst Du das Problem für die bots?

          Eben: ich sehe gar keins für diese Bösewichte, ich will ihnen aber eins hinstellen ;-)

          (Ich habe mir Deine Prüfungen nicht wirklich angeschaut, so etwas gehört sauber kommentiert in eine Funktion).

          Ja doch, einigen wir uns bitte darauf, daß ich das durchaus vorhabe. Nur: es ist ziemlich wurscht, ob meine RegExes nun in sauberer OOP oder in einem über lange Zeit "gewachsenen" und dementsprechend aktuell sehr fehleranfällig gewordenen Script stehen. Sie müssen ihre Aufgabe erfüllen, aber das tun sie scheinbar nur teilweise. Solange ich _das_ nicht wirklich kapiert habe, haben andere Hampeleien noch nicht Priorität.

          Du kennst doch Gunnars und seths Ausdrücke für die Prüfung einer Datumseingabe im ISO-Format?

          Jaein - ich weiß im Augenblick nicht genau, was du meinst. Beide sind fleißige Bastler, und ich kenne einiges von ihnen. Gib mal einen entsprechenden Link bitte an.

          Mahlende Grüße

          öhhhhh ... was "mahlst" du denn jetzt?

          och immer noch mit der Gebetsmühle: [...] (da capo al fine) :||

          Achso. Ich kenne mich da übrigens aus, und in der Wikipedia gibts eine zwar sehr knappe, aber ausreichende Erläuterung. "Da capo al fine" bedeutet übrigens immer, daß man, wenn man als "Mitspieler" in einem Stück aus dem Takt gekommen ist, bloß abwarten muß, bis die anderen dort angekommen sind, und dann geht alles wieder von vorne los, und man kann sich "bis zum Schluß" ganz unbemerkt wieder einreihen - beispielsweise im Posaunenchor. Es ist eine der hilfreichsten Auszeichnungen in Partitionen. Sehr beliebt bei Gottfried Reiche, dessen Turmsonaten wir als Jugendliche mit Begeisterung in Eisenach vom Schloßtürmchen aus über die Stadt gepustet haben ...

          Grüße aus Berlin

          Christoph S.

          PS: du hast schon mehrere "hilfreich" aufgeklebt bekommen, daher erkläre ich kategorisch, daß nur eins davon von mir stammt ;-)

          ss:| zu:) ls:& fo:) va:) sh:| rl:|

          -- Visitenkarte
          1. Hello out there!

            Du kennst doch Gunnars und seths Ausdrücke für die Prüfung einer Datumseingabe im ISO-Format?

            Jaein - ich weiß im Augenblick nicht genau, was du meinst. Beide sind fleißige Bastler, und ich kenne einiges von ihnen. Gib mal einen entsprechenden Link bitte an.

            http://forum.de.selfhtml.org/archiv/2006/3/t126272/#m814810 ff.

            Wiedergefunden mit "+author:gunnar +Ewigkeit" ;-)

            See ya up the road,
            Gunnar

            -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          2. Hallo Freunde des gehobenen Forumsgenusses,

            "Da capo al fine" bedeutet übrigens immer, daß man, wenn man als "Mitspieler" in einem Stück aus dem Takt gekommen ist, bloß abwarten muß, bis die anderen dort angekommen sind, und dann geht alles wieder von vorne los, und man kann sich "bis zum Schluß" ganz unbemerkt wieder einreihen - beispielsweise im Posaunenchor.

            Wer erzählt den sowas? Wenn man rausfliegt sieht man zu dass man allerspätestens ein oder zwei Takte später wieder reinkommt, sonst spielt ja irgendwann gar niemand mehr.

            Gruß
            Alexander Brock

            -- A
            VLinkchecker - Ein Klasse in PHP, die Websites rekursiv abruft und nach kaputten Links sucht.
          3. Hallo

            Eben: ich sehe gar keins für diese Bösewichte, ich will ihnen aber eins hinstellen ;-)

            Schnell und schmutzig:
            Schreibe Dir eine Funktion

               bool ist_spam(eintrag)

            die z.B. auf einem RegExp oder einem der konstruktiven Vorschläge, die Du hier erhalten hast basiert. Erstelle eine weitere Funktion

               logge_spam(eintrag)

            mit der Du in einer Logdatei den Spam mitloggst.

            Ersetze den Aufruf von

              schreiben();

            durch

            if (!ist_spam(eintrag)) {     schreiben();   }   else {     logge_spam(eintrag);   }

            Eine Nachricht, die als Spam klassifiziert wird, wird somit nicht ins Gästebuch eingetragen. Dies gilt leider auch dann, wenn die Klassifizierung ungerechtfertigt ist - und der Benutzer erhält keine Rückmeldung darüber. Schnell und schmutzig, das sollte fürs die Übergangszeit bis zu Deinem neuen Skript genügen :-) Einträge, die zu Unrecht als Spam klassifiziert wurden, könntest Du über das Log nachträglich wieder ins Gästebuch übertragen.

            Diese Funktionen könntest Du hübsch sauber schreiben und kommentieren, mit einer sauber definierten Schnittstelle. Damit erledigtest Du bereits erste Aufgaben für den Neubau.

            Freundliche Grüße

            Vinzenz

        2. Hi Vinzenz,

          So ziemlich jeder hat ein paar Leichen im Keller, auch ich :-)

          So lange man diese Programmier-Leichen nur im Keller liegen hat ist ja auch alles ok - ich habe da auch noch das ein oder andere aus meinen Anfängerzeiten, was ich aber auch gewissermaßen als Andenken aufbewahre ;-) Wichtig ist, dass diese Leichen nicht auf einem aus dem Internet zugänglichen Server liegen!

          MfG, Dennis.

          MySQLDBExport - Eine PHP Klasse für MySQL Dumps
          3 Kölnfans - www.schaumerlmal.de

          -- Mein SelfCode: [ie:{ fl:( br:> va:) ls: fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
  3. Hallo,

    Ich stehe immer noch vor dem Problem, daß ich nicht sicher bin, wie ich sowas bekämpfen kann. Der Weg scheint zu sein, daß diese Spam-Scripts, wenn sie denn einmal den Weg zu meinem Provider gefunden haben, als "Text" auch immer Links in der Form von BBCode einzutragen versuchen. Außerdem tragen sie regelmäßig maskierte Links ein, in denen anstelle von "<" eben "&lt;" verwendet wird - um sicherzugehen, daß irgendeine dieser Eintragungen zu einem anklickbaren Verweis führt. Ich müßte nun irgendeinen Weg finden, derlei Eintragungen anhand solcher spezieller "Links" rauszufiltern, aber da komme ich im Moment nicht weiter. Vielleicht hat noch jemand eine Idee.

    vielleicht ist das ein zusätzlicher (!) Ansatzpunkt. Wenn in einem Beitrag BB-Links, <a href .. UND &lt;a href .. vorkommt, ist das ein Indiz für einen Spam-Eintrag.

    Gruß, Thoralf

    -- Sic Luceat Lux!
  4. Hallo,

    http://www.christoph-schnauss.de/kontakt/gastb_spam.php

    Ja, genau den ersten da bekomme ich ab und zu auch in mein Blog in BBCode Form.

    Schreib dir doch einen Bayesschen Filter in PHP und wenn du den fertig hast, dann veröffentliche ihn unter der GPL, so dass ich ihn nehmen kann und in ein Jlog-Plugin verwandeln kann ;-)

    Grüße
    Jeena Paradies

    -- Gute alte CSS-Hacks | Jlog | Gourmetica Mentiri
    1. hallo Jeena,

      Schreib dir doch einen Bayesschen Filter in PHP und wenn du den fertig hast, dann veröffentliche ihn unter der GPL, so dass ich ihn nehmen kann und in ein Jlog-Plugin verwandeln kann ;-)

      Du kannst aber auch Aufgaben verteilen, tststs. Na ok, ich werde mich mal ransetzen, wenn alles andere aktuelle Zeugs abgearbeitet ist, und dann kriegst du das Ergebnis selbstverständlich für deine Seite frei ...

      http://www.christoph-schnauss.de/kontakt/gastb_spam.php

      Ja, genau den ersten da bekomme ich ab und zu auch in mein Blog in BBCode Form.

      Oha, dann wärst du ja ein "Leidensgenosse". Und hast du schon herausgefunden, _warum_ das Teil sich so eintragen kann?

      Grüße aus Berlin

      Christoph S.

      ss:| zu:) ls:& fo:) va:) sh:| rl:|

      -- Visitenkarte
    2. Hallo Jeena.

      Schreib dir doch einen Bayesschen Filter in PHP und wenn du den fertig hast, dann veröffentliche ihn unter der GPL, so dass ich ihn nehmen kann und in ein Jlog-Plugin verwandeln kann ;-)

      Da gibt es doch schon etwas

      Einen schönen Donnerstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]