[PHP] Spamschutz....

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Epidrome, 18. April 2007 .

Schlagworte:
  1. 18. April 2007
    Spamschutz....

    Hallo,
    ich wollte wissen gibt es eine Möglichkeit, um zu verhindern das wenn
    mein Script in index.php was in der DB (Datenbank) geschrieben hat nicht nochmal den Eintrag in der
    DB schreibt wenn jemand F5 anklickt.
    Wenn ihr mehrere Möglichkeiten kennt, wurde ich mich auf ein paar gut tipps freuen.

    Dank im Voraus Epidrome.
     
  2. 18. April 2007
    AW: Spamschutz....

    1. Wenn jemand was einträgt in die User-DB ne Zeit setzen die wenn sie nicht länger wie 5 min her ist verhindert das etwas eingetragen wird. (Damit sperrt man MassenSpam, Zeit iss Variabel)
    2. Ich denke mal du hast sowas wie ne ID (AutoIncrement) und dann halt Eintrags-Spalten die durch das F5 neu gefüllt werden würden. So nun checkst du vor jedem Eintrag der gemacht wird ob ein Eintrag mit den Kritierien die nicht Automatisch gesetzt werden schon vorhanden ist. Wenn ja sagste dem User halt "Stop"...
    3. Ganz krass wäre per JavaScript "F5" abzufangen und dieser Taste eine neue Funktion zu zu weisen Da kann ich dir leider nur nicht sagen wie, weil ich nie Tasten-Abfang mit JavaScript gemacht habe
     
  3. 18. April 2007
    AW: Spamschutz....

    Ich mache bei Formularen generell 2 Dateien.
    Eine form.php eine formsend.php
    Mit dem Submit-Button wird formsend.php aufgerufen und die Werte ausm POST in die DB geschrieben.

    Wenn nun jemand F5 drückt kommt als Fehlermeldung "Formular nicht ausgefüllt".

    So einfach und nützlich
     
  4. 18. April 2007
    AW: Spamschutz....

    das versteh ich nicht.
    das wär ganz schön blöd, wenn jemand js ausschaltet

    die methode von bleistift geht schon nach vorn. ich würd dort in formsend.php bei erfolgreichem eintragen noch n header("location") oder n meta-refresh einbauen und den benutzer wieder aufs formular (oder auf jede beliebige seite) weiterleiten. bei fehlern hälste an und gibst dem user die möglichkeit, auf zurück zu klicken. so macht's ja das [vermutung] invision board und woltlab[/vermutung]. wenn du genauere spam-protections willst, brauchst du zeitliche sperren (wie z.b. hier, 1 post pro minute? 30 sekunden?) und ne überprüfung, ob der user schon x posts in folge geschrieben hat (z.b. hier 2).
     
  5. 18. April 2007
    AW: Spamschutz....

    Musst du auch nicht weil du den Thread nicht gestartet hast und daher die Antworten nicht verstehen musst.

    Wer lesen kann ist klar im Vorteil. Wo stand bei mir was von js ausschalten?

    So und nu reichts mir aber... Dein Post ist reiner Spamm... Die 2 Möglichkeiten die ich genannt habe die dir nicht gefallen oder aber die du einfach nicht verstehst die kommentierst du, machst sie schlecht und hast sie wohl nicht mal richtig gelesen....... Und dann.... klaust du auch noch die 1. und eig. auch beste Idee von mir und wiederholst sie?! Du tust so als wäre das deine Idee gewesen...

    Also sowas...

    Da iss wohl jemand argh postgeil.....
     
  6. 18. April 2007
    AW: Spamschutz....

    Hi Gn0m, dein Vorschlag ist eigentlich ganz OK. Das Problem ist aber einfach dass man dann quasi für jeden Eintrag überprüfen muss ob die Daten ein zu eins schon vorhanden sind, und solche Abfragen können je nach Traffic sehr viel Arbeit für den Server bedeuten. Bei einem Massenspamm kann sowas, auch Ohne Eintragung der Daten, zu DoS führen, weil halt eine Massen von Anfragen kommt ob die Daten vorhanden sind. Und Varchar und Textfelder lassen sich nicht so schnell abfragen und vergleichen wie Integer werte. Also da entsteht ganz schön viel Arbeit für den Server nur wegen der Kontrolle aus deinem Vorschlag.

    Es gibt da zwei wirksame Alternativen.
    Wäre z.B. die Weiterleitung auf eine andere Seite, die nicht auf das POST Array reagiert. Wenn jemand hier auf Aktualisieren drückt, sollte nichts passieren.
    Die Andere Möglichkeit wäre eine Überprüfung ob ein Session oder Cookie Wert schon gesetzt ist, und falls ja, man halt keine Eintragung macht. Zeit/Inhaltsmanagement muss dann aber hier ORDENTLICH betrieben werden....

    Und mit Javascript hier irgendwas zu fummeln! Absolut nicht zu empfehlen! Und was teh_boing sagt ... mit JS f5 ändern, was effektiv auch nicht geht, und dann JS ausschalten ... was passiert dann mit F5. Das war gemeint.
     
  7. 18. April 2007
    AW: Spamschutz....

    es gibts mehrere möglichkeiten, aber ob die auch alle sicher sind? ich würde persönlich so vorgehen:
    1. jeden benutzer eine eindeutige id vergeben (sid und eine generierte für doppelte sichreheit)
    2. alle daten(sid,genid,ip,time u.s.w) abspeichern in mysql/sessions/cookies
    3. sehr präzise filter-funktionen bauen um die daten abzufragen (regex)
    4. bei formularen die absende zeit speichern und z.b für 30 sekunden diese dann sperren, egal ob richtig die eingaben waren oder auch nicht
    5. alle get/post genauer filtern und conventieren
    6. die generierte id in url anhängen und prüfen

    jeder muss ja selber wissen wie man seine seite schützt, wenn ich google dann stöße ich auch 100te von seiten die dieses thema schon 1000x besprochen haben
     
  8. 18. April 2007
    AW: Spamschutz....

    ...entweder machst du es per sessions sprich auf der seite wo du das formular hast setzt du $_SESSION['reload'] auf 1 und fragst dann auf der seite wo du den mysql insert hast ab ob $_SESSION['reload'] gesetzt ist oder nicht!! Wenn ja machst du den insert, wenn nein gibst du ne fehlermeldung aus!! Du darfst aber ned vergessen, auf der seite wo du den insert machst $_SESSION['reload'] auf 0 zu setzen!!

    form.php
    Code:
    <?php
    $_SESSION['reload']=1;
    ?>
    
    <form action="formsent.php" method="post" name="meinformular"> 
    ...
    ...
    ...
    ...
    ...
    </form>
    
    formsent.php
    Code:
    
     if($_SESSION['reload']) {
     //dein insert
     }
     $_SESSION['reload'] = 0;
    
    
    Eine andere Möglichkeit wäre das hier http://www.selfphp.de/kochbuch/kochbuch.php?code=21

    Hoffe das hilft dir weiter!!

    mfg
     
  9. 18. April 2007
    AW: Spamschutz....

    manche lösungen haben doch gar nichts mit spamschutz zutun -.- das letzte ist ne "reloadsperre" aber bestimmt kein spamschutz das was funland sagte ist ein guter schutz, das musst du jetz nurnoch umsetzen is mein tipp.
    mehr gibts von mir nicht zu hören, wollt dir nur sagen das eine reloadsperre, was einige hier so auch beispielhaft schön darlegen, rein gar nichts mit einem spamshutz zutun hat.
    das mit den session is zwar nich total falsch, sag ich ja auch nicht, aber spamen kann man so trotzdem noch (und bots erst recht)

    @ gnom
    du hast glaube teh_boiiingerrr falsch verstanden mit dem javascript

    er meint nur: wenn man es per javascript löst, bringt das nichts wenn der spamer einfach javascript im browser deaktiviert AUßER man gibt das ganze script per js aus... dann schon aber sonst hat er recht.
    ist also daher keine erwähnung, das du jemals gesgat hättest man soll js ausschalten

    vllt sind jetz die balken weniger gebogen :]

    mfg
     
  10. 18. April 2007
    AW: Spamschutz....

    richtig, trotzdem kann ich nachfragen.
    nirgends. ich muss dann wohl die zeile übersehen haben, in der du davon schreibst, dass ein js-fähiger browser eingesetzt wird. kann ja nicht lesen, bin ja nub.
    trink n glas milch und komm runter. is'n freies land, ich kann zu lösungsvorschlägen beitragen, was ich möchte - ich kann sie in frage stellen, ergänzen, korrigieren, wasauchimmer. einfach mal selbst den kopf einschalten und sich auch mal selbst was sagen lassen hat noch niemandem geschadet.
     
  11. 18. April 2007
    AW: Spamschutz....

    Also wenn ich das Elternposting lese, geht es klipp und klar darum, Doppelte Beiträge beim Aktualisieren zu verhindern. Aber eine Reloadsperre, mit Zeiteinstellung, hat natürlich auch den Vorteil gegen Spam vorzugehen!

    Thema Bots und JS, die Bots werden sowieso kein JS benutzen, und die Postings nach identischen Inhalten zu durchsuchen ist auch keine Krönung. Erstens aus den oben von mir genannten Gründen, und zweitens wäre es für einen Bot auch kein Problem, Texte zu verändern, was auch eine Checksumme aushebelt.
    Die komplette Datenbank nach identischen Einträgen zu durchsuchen, ist ein Overkill!
     
  12. 18. April 2007
    AW: Spamschutz....

    zum thema bots: diese kleine visuelle roboter greifen z.b jede 2 stunden auf die seite und probieren neue inhalte hinzuzufügen. man muss bloss diese genauer überwachen: ihr verhalten, den man auch gebrauchen kann z.b für manchen sind die klicks wichtig, also lässt man diese auch umleiten. also testet ob der benutzer(oder auch bot) sessions annehmen tut oder nicht. wenn nicht dann halt bann.
     
  13. 18. April 2007
    AW: Spamschutz....

    jojo ich halt mich raus, das mit js und F5 umschreiben war eh nur spass und dachte eig. sowas wäre eindeutig...

    macht ihr ma hier weiter....ich gugg mir das gerne noch an^^
     
  14. 29. April 2007
    AW: Spamschutz....

    Gegen jemand der sich halbwegs mit der Materie auskennt, bringt das 0. Ein kleines Perl Script ist schnell gebastelt, dass die Datei aufruft, genauso wie mit Cookies und Sessions, sobald der Bot wirklich nur ne simple POST Anfrage macht, ohne irgendwelche Header für Cookies oder sonstwas mitzusenden, haste da in ner Minute mehr als paar hundert Einträge.

    Die einzige möglichkeit dort noch ein bisschen gegenzuwirken, sind Captchas und die Speicherung von IP's. Du fügt am besten in deiner Datenbank ein neuen Column (typ long integer) and, wandelst vorher die IP mit ip2long um, und setz nen Index auf diesen Column (selbst bei mehr als paar Millionen einträge haste noch ne zugriffszeit unter 50ms). Dann prüfst du bei jedem neuen Eintrag ob dieser Wet schon vorhanden ist, fals ja guckst du ob die Zeit als der Beitrag erstellt wurde länger als X Tage zurückliegt, und kannst dann den beitrag hinzufügen oder nicht.

    Da es aber mittlerweile leicht ist innerhalb von wenigen Minuten mehr als 100te Proxies zusammenzusuchen (+ Script umschreiben, welche diese dann nutzen), würde ich noch ein Captcha einfügen, welches ein paar Zeichen (ein bisschen entstellt) anzeigt, das dauert dann nochmal seine Zeit bist das herausgefunden wurde.
     
  15. 29. April 2007
    AW: Spamschutz....

    Jo FlowFlo, der mit den 20 Advisories,
    wir können uns jedes Mal immer weiter im Kreis gehen. Das was ich Vorschlug mit Cookies und Sessions und du kritisiert, läßt sich genauso gut mit deiner IP Speicherung (die du im selben Text selber wieder kritisierst) und deinen Captchas machen. Denn auch Profis, die sich halbwegs gut mit der Materie auskennen, werden kein Problem mit Captchas und IP-Block (Kritik selbst von dir genannt) haben.
    Aber wo du eindeutig recht hast, bei profispammer, und da hab ich vorher nicht drangedacht, dass HTTP Protokoll ohne Cookieinfo im header oder sid in der url benutzt, und schon isses gb vollgespammt.

    Ein bunter Mix von alledem bei professionellen Spammern muss also her. Aber wie ich bereits oben sagte, auch in dem schon von dir zitierten Teil, ging es dem Threadersteller um das manuelle aktualsieren eines Users und da reicht meines Erachtens eine einfache "Reloadsperre".

    EDIT: Da du anscheinend meine Postings raussuchst und kritisieren möchtest, solltest du auch mal genauer schauen. Ich habe mich auch schon oft zu Captchas und nem IP - Block geäußert und auch schon erklärt wieso ich bei manchen Dingen zu Cookies rate, weil ein normaler harmloser User seinen Cookies nicht löschen wird, wohingegen ein normaler User durchaus sofort ne andere IP haben kann.

    Bei 20 Advisories bin ich neidisch? Ne, bei der Anzahl von Prons die du dir hier anscheinend mit 16 saugst .... bei der Zeit die dafür verschwendet wird .... die Zeit hätte ich auch gern.

    EDIT2: O Mann, dann weiter im Text.
    1. Wenn du komischerweise dir meine Beiträge raussucht und ich es in meinen Abos sehe, werd ich das doch wohl auch dürfen?
    2. Weil ich sage dass ich die Zeit auch gerne hätte, flame ich?
    3. Schrieb ich bei deiner Altersangabe "anscheinend" weil ich nicht davon ausgehen kann, ich bin ja so naiv, dass deine Angabe im Profil korrekt ist.
    4. Ein harmloser User, davon gehe ich einfach mal aus nach diesem Thread und den Reaktionen des Threaderstellers, der F5 drückt, könnte keinen Grund haben seine Cookies zu löschen, aber vielleicht seine IP zu ändern .... Hätte, wenn und Aber ... es könnte stöndig so weiter gehen.
    5. Ich bin so naiv, dass ich glaube ein harmloser User drückt aus Versehen F5 und der Threadersteller brauch wie im Elternpost beschrieben, nur eine Reloadsperre. Aber komisch hier bin ich naiv, weil ich anscheind nicht genug um Sicherheit gebe, aber in einem anderer unserer Lieblingsthread, ist es ja so wannabe von mir, weil ich zu sehr auf Sicherheit bedacht bin, entscheide dich mal!!
    6. Und wende dich endlich an mich persönlich per PM wenn du ein Problem mit mir hast. Das hier wird endgültig mein letzter öfentliches Posting sein, indem ich mich weiter mit dir zu beschäftigen.
    7. SuFu doch nochmal nach Spamschutz, oha hoppla, da helfe ich einem User sogar bei Captchas. Aber keine Angst, der wannabe der nicht so wirksame Methoden wie du kennt ist gerne bereit sich weiter per PM zu unterhalten.
     
  16. 29. April 2007
    AW: Spamschutz....

    Nur sag ich dir, bringen meine Methoden wesentlich mehr als deine. Selbst die Session und Cookie methode kann ein "dummer" User ohne programmierfähigkeiten mit leichtigkeit umgehen (Cookies löschen, Browserfenster schließen und wieder öffnen) ..

    Ich weiß auch nicht was du immer meine Advisories ansprichst, höre ich da Neid ?
     
  17. 29. April 2007
    AW: Spamschutz....

    Ist das verboten ? Ich interessiere mich halt für die Leute mit denen ich mir hier auseinandersetzte.
    Und nen "hamrloser User" wird seine Cookies nicht löschen ? Ich glaube du bist echt naiv Wenn ein harmloser User wirklich etwas vollspammen wird, ist das die erste möglichkeit die er ausprobiert wenn es nach dem ersten Post nichtmehr klappt.

    Du scheinst auch gezielt nach meinen Beiträgen zu suchen ? Ich hab ja nix dagenen, nur verwechselst du da wohl mein Alter, ich glaube ich bin dir ein paar jährchen vorraus mein kleiner
    Außerdem nicht so "rumflamen" oder wie hast du das eben noch genannt ?
     
  18. 24. August 2009
    AW: Spamschutz....

    Hey .. also ich kenne jetzt 2 Möglichkeiten.

    1 :

    Du machst das mit Sessions .... Link

    2 :

    Du speicherst von jedem Benutzer die IP in einer Datenbank und überprüfst bei jedem Aufruf der Webseite, ob der jeweilige Benutzer (IP) schonmal auf der Seite war.

    Hoffe das hat geholfen ^^

    lg
     
  19. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.