Beiträge von Synonym

    Na ist doch schön.... Diese Beiträge habe ich eh immer geliebt:

    Zitat

    SEO H1, SEO H1 oder H2, SEO H1 H2, SEO H1 H2 H3 bzw. SEO H1 Tag
    Immer wieder tauchen Fragen auf rund um das Thema Überschriften und SEO H1, SEO H1 oder H2, SEO H1 H2, SEO H1 H2 H3 bzw. SEO H1 Tag. SEO H1, SEO H1 oder H2, SEO H1 H2, SEO H1 H2 H3 bzw. SEO H1 Tag kennzeichnen Überschriften und dienen in der Regel...

    War aber immer ganz nett dort. Vor allem damals diese "Live-Ansicht" der Suchbegriffe. Da konnte man immer schön seine eigene Seite verlinken und dabei die restlichen Inhalte der Seite ausblenden :)

    Nachtrag, weiß aber nicht, ob das so passt und welche Werte da nun genau zusammengesetzte werden. Aber etwa so sollte es funktionieren (ungetestet):

    Ok, so habe ich mir das gedacht.. Entscheidend ist das hier:

    Bedeutet bei Dir also, der geht in den ersten Durchlauf von while(). Wenn er dann in den "if(count($test) > 0)" kommen sollte, dann sendet er nach dem for() auch den Header und geht auch nochmals in den exit(). Alle anderen while danach sind egal, exit war schon da.

    Bei Deinem normalen "echo" würde er den Wert einfach echoen und die while weiter machen. Deine Modifikation geht in den exit. Ohne Exit geht es aber so auch nicht, da er beim ersten "match" den Header senden wurde und kurz darauf den "echo" ausführt. Selbst wenn das while dann weiter läuft, ein zweiter header kann dann nicht mehr gesendet werden.

    Das heißt, Du musst innerhalb der for() das $haus zusammensetzen, so wie bisher. Dann musst Du aber auch den eigentlichen Output der kompletten while zusammensetzen, dafür lässt Du das echo vom Original weg.

    Außerhalb der while() kommen dann die Header und der Output von allen Werten.

    Zitat

    aber was ich nicht versteh warum passt das echo Ergebnis - und wenn ich das ganze in die txt schreiben möchte funktioniert es nicht mehr?


    Genau das wollte ich sehen mit den Dumps.. Bei mir schreibt der nämlich ganz normal, wenn ich dem als $text ein Array übergebe und die $row mit Testinhalten fülle.

    Wobei das $row bei Dir dann ja eh immer der gleiche Wert ist, nämlich Code oder Uid. Der wird ja in der Schleife nicht "mitgeschliffen".

    Der Dump vom $haus ist aber auch seltsam. Das müsste ein String sein, an den immer wieder weitere Werte angehängt werden per ".="

    Wo hast Du das var_dump($haus); denn eingefügt? Direkt vor dem ersten header oder in die Schleife ??

    Der Dump von $test fehlt komplett.

    Mein test liefert z.b.
    array(4) { [0]=> string(4) "test" [1]=> string(5) "test2" [2]=> string(5) "test3" [3]=> string(5) "test4" }
    und mein haus:
    string(13) "testcode
    "J

    Jetzt dämmert mir was..... Dein Dump von $haus sind mehrere Einzelwerte... Kann es sein, dass Dein Code nur ein kleiner Teil ist und darum nochmals eine andere Schleife läuft? Würde die vielen Einzelwerte erklären - normalerweise ist es nur einer. Würde auch erklären, dass die $row verschiedene Werte wären, nämlich bei jedem Durchlauf ein anderer.

    Wenn dem so ist, dann poste mal ein wenig mehr von dem Code, zumindest alle beteiligten Schleifen. Header senden in Schleifen ist nicht möglich, zumal Du die Daten danach mit echo ja ausgibst. Nach der Datenausgabe kann aber kein neuer Header folgen.

    Würde auch erklären, warum das mit einfach "echo" funktioniert, denn da echot er die Werte ja einfach hintereinander.

    Auch würde es erklären, warum das txt leer ist. Der erste Dump (string(0) "") ist ja leer und der wird ausgegeben. Danach (wenn eine weitere Schleife drumrum) erfolgt kein neuer Header. Allerdings würde da das exit; dann auch keinen Sinn ergeben.

    Äm, das Formular nenne ich hier nicht. Ist aber ein stinkt normaler Formular mit 8 Feldern (siehe Spam-Beispiel oben) und einem Button.
    Direktes Posten ist verhindert, Reload auch, diverse Spamerkennungen in den Dateneingaben auch usw... Nur eben haben diese jetzigen Spams keinen Gemeinsamkeiten.

    Verarbeitet wird das durch mein eigenes System.

    Allerdings habe ich nun auch mal eine Prüfung für das Datum eingebaut und nun ist erst mal Ruhe. Die hatte ich bisher extra nicht, weil viele das Datum frei eintragen und das in den unterschiedlichsten Formen. Nun wird dd.mm.yyyy erwartet, alles andere gibt eine Fehlermeldung.

    Die Spammer sind noch da, sie füllen auch aus, aber eben mit einem falschen Datumsformat. Nur wenn die das erkennen, dann ist es wieder vorbei mit Lustig.

    Zitat

    ich hab aufgehört mir darüber Gedanken zu machen ;)


    Das habe ich auch, bei meinen eigenen Formularen oder Gästebuch. Bei den Kundenformularen ist das halt etwas anderes. Da gehen mehrere Hundert Anfragen am Tag raus. Wenn die dann nicht fähig sind zu Lesen und richtig zu Schreiben, dann gehen diese Anfragen verloren und somit auch potentielle Mieter für meine Kunden. Das ist das erste Problem. Das andere - kam recht häufig vor - da riefen die "nicht-lesen-könner" bei den Vermietern direkt an und beschwerten sich beiläufig, dass das Formular nicht funktionieren würde. Darauf riefen dann die Vermieter verärgert bei mir an, weil die das glaubten. Denen kann ich dann aber schlecht sagen: "Eh, die sind einfach zu doof zum Lesen", da auch einige Vermieter die 5 Ziffern nicht abtippen konnten ;)

    Das sind genau solche Besucher, die bei einer echten Anfrage bei "Telefon" und auch bei "Email" "keine" reinschreiben. Und dann beschweren die sich, weil keiner auf deren Anfrage reagiert.

    Ok, das mit den Rechenaufgaben wollte ich ja nicht. Da sind viele wirklich zu doof dafür. Mein "Capcha" war damals einfach eine graue Hintergrundgrafik mit 5 Ziffern drauf. Nicht schräg gestellt, verstellt oder sonst etwas. Normale Schrift, normale Schriftart und Darstellung. Und viele waren nicht in der Lage diese 5 Ziffern richtig abzuschreiben.

    Neuer Ansatz daher: Erneutes Captcha oder Frage oder was auch immer. Aber nicht für alle, sondern nur für die, die direkt auf dem Formular aufschlagen und nicht von einer anderen Seite über einen Link dorthin kommen. Dann sollten normale Besucher das Captcha gar nicht sehen. Die Spammer, die direkt aufschlagen jedoch schon. Dann allerdings auch die, die das Formular auf der eigenen HP verlinken, aber das ist nicht so schlimm.

    Ok, werde ich dann mal testen.

    Äm jaein... Also Captcha oder dergleichen nur sehr sehr ungern. Die hatte ich mal 2005 - 2007 drinnen und der Erfolg war mehr als schlecht. Gut, Spammer kamen keine durch, aber geschätzt 20% der eigentlich Anfragenden auch nicht. Entweder wollten die das nicht lesen oder konnten es nicht.

    Und das andere. So ein Kundencenter ist ganz nett, doch geht bei mir am Ziel vorbei. Die Anfragen sind ja nicht von mir an Kunde oder umgekehrt, sondern von Besucher an Kunde. Ich habe mit den Anfragen nichts am Hut, speichere und sende die nur. Das sind Anfrageformulare für Unterkünfte. Also der Empfänger ist bei jedem Formular ein anderer, daher auch überall ein einzelnes davon.

    Wenn das nur ein einzelnes Formular wäre, dann könnte man da auch noch eine Prüfung einbauen, wie viele Anfragen da versendet werden. Aber es sind ja lauter verschiedene und jedes wurde einmal benutzt. Also hat jeder betroffene Vermieter so eine (oder ähnliche) Mail bekommen.

    Das hört sich gut an. In letzter Zeit wurde es ja wirklich teilweise unerträglich. Aber ich würde mir da echt auch mal die Ursachen für ansehen, der Server alleine glaube ich nämlich fast nicht. Das Forum ist eigentlich gut und so viel ist hier nicht los. Glaube auch nicht, dass das bisher so ein schlechter Server ist.

    Also mal z.B.
    Die ganzen Javascripte. Die werden zwar nett mit einem 304 beantwortet, aber dennoch muss hier ein Request durchgeführt werden. Nimm da doch Expire bzw. setze einen Last-Modified und nicht nur ETAG alleine. Die Teile haben doch eh alle eine Versionsnummer mit dabei. Sind hier in der Threadansicht z.B. 16 JS, die alle mit 304 daherkommen. Könnte man sich alle sparen.

    Die CSS hingegen kommen mit ETAG und Last-Modified, kommen bei mir somit auch direkt aus dem Browser-Cache.

    Aufgefallen ist mir auch beim erweiterten Editor, warum auch immer: Der lädt extrem langsam bei mir. Komischerweise lädt der auch erst den kompletten Standardeditor mit allem was dazu gehört um in dann mit dem erweiterten zu ersetzen. Ob das so sein muss weiß ich nicht, aber da sind viele unnötige Requests inkl. der ganzen JS, CSS, Grafiken, Smilies aus dem Standard-Teil.

    Nach dem Klick auf Bearbeiten werden 81 Requests gesendet und fast 300 KB empfangen. Finde ich ein wenig heftig für ein normales "Bearbeiten".

    Eventuell auch mal die Bilder / JS / CSS parallel laden lassen, wenn das Forum das so als Option im ACP hergibt.

    Wobei das aber mehr nach Kommentarspam aussieht, oder? Der hat selbiges nämlich auch:
    *** Link veraltet *** und der *** Link veraltet ***
    Wobei. Bei mir waren die so unterschiedlich, dass ich mir das bei Google gar nicht angesehen habe, aber alleine schon diese eine Nachricht aus dem Post oben gibt es schon mehrfach wo anders:
    *** Link veraltet ***

    So, nochmal. Das Forum hat meinen Text irgendwie gelöscht. Scheint ja dann wohl doch was automatisches zu sein, wobei da dann nur nur URL, sondern auch Feldnamen gespeichert wurden. Neuer Ansatz: Feldnamen umbenennen und das nicht nur einmal, sondern dynamisch jeden Tag. Könnte funktionieren, oder?

    Zitat

    hmm wennste bot trap drauf hast, die idee ist ja nicht schlecht.. aber..
    es wurden bei mir echte besucher ausgesperrt, hat siich das mittlerweile verbesert bei bot trap?


    Also ich hab das seit Beginn an drauf. War wohl auch einer der ersten. Hab seit dem keine Probleme, weder damals noch heute. Besucher haben sich bisher nur 5 beschwert, in den ganzen Jahren. Damit kann ich leben. Hin und wieder werden Dienste gesperrt, die ich aber nutzen möchte (z.B. Facebook, W3C etc), aber auch damit kann ich leben.

    Zitat

    andere ideen waren damals bei mir, felder die nicht ausgefüllt werden dürfen, wenn doch = spam. hatte mal ein mini script programmiert was das kann.


    Das habe ich leider auch schon. Zwei Felder. Eines wirklich als Hidden, ein anderes als display:none. Beide werden nicht ausgefüllt.

    User-Agent: Ist alles mögliche, aber alles normale Browserkennungen. Unterschiedliche Landessprachen, mal IE, mal Opera, dann mal FF oder Safari und alles in den verschiedensten - aber möglichen - Versionen. Der älteste war ein IE 6.0.

    Das einzige was mir nun noch einfällt, denn die Nachricht selbst ist zwar Spam, aber nicht zu erkennen - nicht für meine Systeme.... Eine Abfrage, wie lange es dauerte zwischen "Formular aufrufen" und "Formular senden"... Wobei, wenn ich mir das so überlege... Das sind im Schnitt 20 Sekunden. Das könnte man auch so normal schaffen.

    Was ich noch habe: Die schlagen immer direkt im Formular auf, füllen es aus und senden es dann ab, dann verschwinden sie. Aber... Die Formulare sind nicht im Index. Normalerweise müsste man von der Detailseite aus auf das Formular gehen. So eine Prüfung könnte ich auch einbauen, ob der denn von der Detailseite kommt oder nicht, aber das gibt es anderes Problem. Einige der Kunden verlinken das Formular selbst auf Ihrer HP und dann wäre so eine Prüfung alles andere als gut.

    Ich hasse Spammer... Können die nicht mein Gästebuch vollspammen... Das wäre mir egal. Aber warum ausgerechnet die Kundenformulare, bei denen nichts online sichtbar ist und auch keine Spam-URLs gesendet werden.

    Alex
    Also da muss ich dann mal nachsetzen...

    Bot-Trap ist drauf. Nur die einzelnen IPs ist nicht gesperrt. Würde auch keinen wirklichen Sinn machen, da warum gleich eine ganze IP eines Providers sperren, nur weil darüber einmal Spam gesendet wurde. Wie gesagt, das sind immer wieder komplett andere IPs. Keine kommt doppelt vor.

    Wegen der Email-Adresse. Diese ist gar kein Pflichtfeld und kann beliebig ausgefüllt werden oder eben auch nicht.

    Es geht hier wirklich um manuellen Spam. Hab mir nun auch schon die Logs angesehen und nunja... Die gehen normal auf die Seite, dann weiter über den Link zum Formular und senden das dann ab. Danach versuchen die dann immer wieder gleich einen Reload hinter her zu schicken, doch das verhindert dann das System. Auch versuchen die anschließend diverse andere Formulare zu öffnen (ändern die ID nach belieben), aber auch das wird verhindert.

    Askimet dann aber auch nur so weit, dass Emails geprüft werden. Diese sind aber freiwillig und müssen nicht angegeben werden. Wenn, dann Prüfe ich die Erreichbarkeit und das ist bisher immer der Fall gewesen. Das doofe ist ja dieser bescheuerte Spam, der keinen Sinn ergibt. Andere schreiben eine URL mit rein, die filtere ich dann still raus und sage "alles gut". Aber da sehe ich keine Möglichkeit, automatisch etwas zu filtern.

    Hm... währenddessen geht der Spam weiter. Langsam und mit Abständen, aber eben weiter.

    Nachtrag: Die kommen auch aus der ganzen Welt..... Asien, Mexiko, Niederlande, Deutschland, Österreich, Russland, Polen, USA, China, Spanien

    Hallo zusammen,

    meine Systeme sind je eigentlich soweit sicher und nicht betroffen von Spam, doch nun scheint es irgendwie los zu gehen.

    Der Spam schaut z.B. so aus:

    So, das Problem nun nur: Alle Anfragen kamen von verschiedenen IPs - gänzlich verschieden. Alle Anfragen hatten komplett unterschiedliche Inhalte und keine davon eine URL oder dergleichen in der Nachricht (darauf prüfe ich auch schon). Auch kann das Formular nicht einfach so abgesendet werden, da braucht es schon einen vorherigen Zugriff auf eine andere Seite, die das dann in der Session registriert. Direkte POST-Request werden blockiert.

    Somit scheint das wohl einer zu sein, der die Formulare per Hand ausfüllt. Spricht auch dafür, dass zwischen den Anfragen mehrere Minuten liegen.

    Gibt es da irgend eine Möglichkeit das zu blocken? IP-Sperre nicht wirklich. Da müsste ich nun schon 27 Sperren, da über jede eine Spam-Anfrage kam....

    Jemand eine Idee?

    Catcat, dann ist es letztere Version, sollte zumindest damit ausreichen. Aber das ist eben nur der Pattern selbst. Daher ja der Punkt, wo Du die verwenden willst. Eine RegEx entfernt / löscht oder ändert so gesehen ja erst mal nichts, sondern matched oder matched nicht. Mit dem Ergebnis arbeitet dann eine andere Funktion und macht was damit.

    z.B. PHP preg_replace():
    *** Link veraltet ***

    Code
    [COLOR=#000000][COLOR=#0000BB]$zeichenkette [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]'Das ist der Text mit dem [/COLOR][/COLOR]<a href="meine-somain.de/link-zum-file.htm#anker">link</a> [COLOR=#000000][COLOR=#DD0000]mit dem dazwischen.'[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]$suchmuster [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]'[/COLOR][/COLOR]/\.htm#([a-z0-9]+)/[COLOR=#000000][COLOR=#DD0000]'[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]$ersetzung [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700];
    echo [/COLOR][COLOR=#0000BB]preg_replace[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$suchmuster[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$ersetzung[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$zeichenkette[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]

    Also das Suchmuster ist der Pattern, die Ersetzung in dem Fall eben nichts " und String eben der String. Aber das halt bei PHP. Andere "Sprachen" arbeiten anders. Manche Programme / Editoren wieder anders. Was aber fast immer recht gleich / ähnlich bleibt ist das Suchmuster selbst.

    Bei mir im uEdit würde es etwa so aussehen:
    .htm#^([a-z0-9]+^)
    Also das \ am Anfang versteht der nicht und die () müssen jeweils mit einem "^" übergangen werden. Aber auch so würde er alle ".htm#axc" ersetzen.