Wie kann ich Spam auf Websites verhindern, die ich kontrolliere?

27

Dies ist eine allgemeine Community-Wiki-Frage, die alle unspezifischen Fragen zur Spam-Prävention beantwortet.

Wenn Ihre Frage als Duplikat dieser Frage geschlossen wurde und Sie der Meinung sind, dass die hier bereitgestellten Informationen keine ausreichende Antwort liefern, eröffnen Sie bitte eine Diskussion zu Pro Webmasters Meta .


Für die Zwecke dieser Frage umfasst Spam Folgendes:

  • Beliebiger automatisierter Post
  • Manuell geposteter Inhalt, der Links zu Spammerseiten enthält
  • Manuell geposteter Inhalt, der Anweisungen zum Besuch der Website eines Spammers enthält
danlefree
quelle

Antworten:

27

Die folgende Liste ist nach der relativen Einfachheit der Implementierung, den Wartungskosten und der Wirksamkeit der Spam-Prävention gegliedert:

Deaktivieren Sie alle benutzergenerierten Inhalte

Dies ist eine Scorched-Earth-Lösung, die das Wachstum einer Benutzergemeinschaft auf Ihrer Website beeinträchtigt. Sie erspart Ihnen jedoch auch die Zeit und Mühe, sich mit Spam oder Spam-Prävention zu befassen.

Abgesehen von der Deaktivierung von benutzergenerierten Inhalten gibt es keine garantierte Lösung, um das Auftreten von Spam (oder anderen unerwünschten Inhalten) zu verhindern. Eine Lösung, die die meisten Spammer abschreckt, sollte jedoch ausreichen, wenn Sie den Besuchern Ihrer Website auch die Möglichkeit geben, Inhalte zu kennzeichnen als Spam.

Benutzergeneriertes Content Management auslagern

Dienste wie Disqus ermöglichen es Webmastern, die Überprüfung, Speicherung und Veröffentlichung von benutzergenerierten Kommentaren auszulagern. (Hinweis: Die Verwendung eines Drittanbieter-Dienstes erfordert eine zusätzliche Konfiguration, um sicherzustellen, dass Kommentare von Suchmaschinen indiziert werden.)

CAPTCHA

Laut Wikipedia steht CAPTCHA für "Completely Automated Public Turing Test, um Computer und Menschen auseinander zu halten". Jeder automatisierte Test, der verhindern soll, dass ein Computer Inhalte veröffentlicht, ist ein CAPTCHA: Dazu gehört, dass Benutzer Buchstaben, Zahlen und Wörter aus Bildern lesen, einfache Worträtsel oder mathematische Fragen lösen oder auf andere Weise "beweisen", dass sie Personen sind.

Der Nachteil von CAPTCHA ist das

  1. Die meisten Formen von CAPTCHAs stören die Benutzer.

  2. Sie sind nicht 100% schützend. Beachten Sie, dass viele dieser Tests von Computern durchgeführt werden können, wenn ein kompetenter Programmierer beschließt, genügend Zeit und Mühe in das Problem zu investieren

Q & A CAPTCHA

Das effektivste CAPTCHA für kleine Websites ist das Frage- und Antwort-CAPTCHA. Ein Q & A CAPTCHA ist eine Frage, die ein Benutzer auf einer Website beantworten muss. Die Frage ist etwas, das jeder, der die Site besucht, wissen würde, aber dass ein Computerprogramm es nicht wissen würde. Eine Beispielfrage für eine Site über SEO wäre "Wofür steht SEO?". Diese Frage wäre für den durchschnittlichen Leser dieser Site leicht zu beantworten, aber jedes Computerprogramm wäre dazu nicht in der Lage.

HINWEIS: Fragen wie "Was ist 1 + 1?" Funktionieren nicht gut, da sie häufig verwendet werden und die Leute, die Spambots erstellen, sie so programmieren, dass sie solche Fragen richtig beantworten.

Wenn Ihre Site jedoch viel Verkehr hat, programmieren Spammer ihre Roboter so, dass sie diese Fragen automatisch beantworten, und das Q & A-CAPTCHA ist nicht mehr wirksam.

Verstecktes Feld

Wenn Sie ein Formular haben und nicht möchten, dass Spammer es verwenden können, können Sie es am besten mithilfe eines ausgeblendeten Felds stoppen. Diese sind sehr einfach einzurichten: Fügen Sie Ihrem Formular ein redundantes Feld hinzu, verstecken Sie es durch CSS (oder JavaScript) und stoppen Sie alle Versuche, einen Wert in dieses Feld einzugeben. Normale Benutzer können das Feld nicht sehen und ignorieren es, da es vor ihnen verborgen ist. Von Spammern verwendete Computerprogramme versuchen jedoch, einen Wert in dieses Feld einzugeben, da sie kein CSS oder Javascript verarbeiten. Um Spambots zu schlagen, die CSS oder Javascript laden, können Sie den Formularen ein zusätzliches Feld hinzufügen, in dem Sie aufgefordert werden, es leer zu lassen. Jeder menschliche Besucher lässt es leer und Sie können die Bots, die Daten zum Feld hinzufügen, einfach blockieren. Vergessen Sie nicht, dass die Website dadurch möglicherweise unprofessionell aussieht.

Traffic- und Content-Analyse

Spammer haben eine begrenzte Anzahl von Netzwerken und Computern, über die sie Beiträge senden können (die sie normalerweise verwenden, bis sie nicht mehr funktionieren). Datenverkehrsanalyselösungen erfassen Daten von einer großen Anzahl von Hosts, um festzustellen, ob ein Beitrag bekannten Spam-Inhalt enthält oder von einem Host oder Netzwerk eines bekannten Spammers stammt.

Es gibt eine Vielzahl von CAPTCHA- und Verkehrsanalyselösungen von Drittanbietern, die kostenlos (oder kostengünstig) verwendet werden können. Die meisten Open-Source-Content-Management-Programme enthalten integrierte Module für die Nutzung von Diensten wie Akismet und reCAPTCHA .

Blockieren Sie häufig in Spam enthaltene Wörter

Wenn Sie bemerken, dass Spam auf Ihrer Website häufig Wörter enthält, die von legitimen Benutzern nicht verwendet werden (oder nicht) (z. B. "kostenlose Links zu Ihrer Website"), ist es eine affektive Lösung, Benutzer daran zu hindern, diese Wörter zu veröffentlichen. Wenn Sie Bedenken haben, dass Benutzer, die diese Wörter in ihren Posts legitim verwenden, Probleme beim Posten auf Ihrer Site haben, können Sie den Filter so einstellen, dass er Posts von etablierten Benutzern ignoriert.

rel="nofollow"

Spammer konzentrieren sich in der Regel auf Websites, auf denen sie Links veröffentlichen können, denen Suchmaschinen folgen (wodurch der Suchrang der von ihnen beworbenen Website verbessert wird).

Sie können Ihre Website für Spammer weniger attraktiv machen, indem Sie rel="nofollow"Links zu von Nutzern erstellten Inhalten hinzufügen. Dieser Ansatz funktioniert jedoch möglicherweise nicht, da die meisten Spam-Mails automatisiert sind und Spammer nicht wissen können, ob eine Website rel="nofollow"Links verwendet oder nicht .

Moderation durch Benutzer

Inhalte können jedoch von jedermann gepostet werden. Sobald sie auf der Website angezeigt werden, können sie auch als Spam gekennzeichnet und entfernt werden Die meisten Besucher werden sich nicht darum kümmern, Spam zu melden.

Gamification

Gamification ist eine großartige Möglichkeit, Benutzer dazu zu motivieren, Spam zu melden. Erwägen Sie, Ihrer Website eine "Flaggengewichtung" hinzuzufügen: Je mehr Spam-Nutzer melden, desto mehr Punkte erhalten sie. Auf diese Weise macht das Aufspüren von Spam mehr Spaß und es werden Personen, die Spam melden, Rechte eingeräumt. Dies wiederum ermutigt die Benutzer, Spam zu melden.

Moderation durch Administratoren

Ein Mensch muss alle veröffentlichten Inhalte überprüfen, bevor sie auf der Website veröffentlicht werden. Dies verhindert zwar nicht, dass Spam veröffentlicht wird, verhindert jedoch, dass Spam für die Besucher der Website angezeigt wird (was den Wert der Website für menschliche Spammer verringert). .

Benutzer Registration

Die Benutzerregistrierung stellt eine Verbesserung gegenüber CAPTCHA dar, da Benutzer nur einmal nachweisen müssen, dass sie ein Mensch sind , bevor sie nach Belieben Kommentare abgeben können. Dies ist technisch gesehen keine andere Form der Spam-Verhinderung Bestimmte Benutzer oder Benutzergruppen (wie durch Benutzername, E-Mail-Adresse, IP-Adresse oder anderen Identifizierungsfaktor angegeben) sind leichter durchzusetzen.

Moderate neue Benutzer

Anstatt jeden Beitrag zu genehmigen, kann ein Administrator die Registrierungen neuer Benutzer überprüfen, um zu bestimmen, ob ein Benutzer genehmigt werden soll oder nicht, basierend darauf, ob die Registrierung des Benutzers mit identifizierten Spammern oder automatisierten Spambots übereinstimmt.

Beschränken Sie die Möglichkeiten neuer Benutzer

Menschliche Spammer werden sich selten daran erinnern, zu Konten zurückzukehren, die sie erstellt haben, wenn sie keinen freien Spam auf einem Konto veröffentlichen können. Neue Benutzer müssen eine bestimmte Anzahl von Posts erstellen (wenn die Community die Möglichkeit hat, Spam zu kennzeichnen) und / oder eine bestimmte Zeit warten Zeitspanne, bevor Einschränkungen für das Posten von Links oder mehreren Posts aufgehoben werden.

Laden Sie Benutzer für Mitgliedschaft auf

Wenn Sie für die Mitgliedschaft eine Gebühr erheben, müssen Spammer die Kosten für die Mitgliedschaft mit dem Wert für das Versenden von Spam auf Ihrer Site abwägen (und zugunsten einfacherer Ziele auf Ihre Site übergehen).

Nur geladene Gäste

Wenn Sie nur Personen zulassen, die von anderen Benutzern eingeladen wurden, sich zu registrieren, wird dies den Spam erheblich reduzieren (Menschen laden normalerweise keine Roboter ein).

Das Folgende ist von Project BOTCHA , Drupal.

Honigtopf

Implementierung einer Honeypot-Falle . Das Wesentliche ist, dass das Feld mit einem bestimmten Wert zum Formular hinzugefügt wird, der dann von JS geändert wird. Spam ist jede Form der Übermittlung, deren berechneter Wert nicht dem von uns benötigten Wert entspricht.

HoneyPot2

Dasselbe wie oben, aber als Berechnungsquelle nicht den Wert eines bestimmten Feldes verwenden, sondern die Daten aus CSS.

ObscureUrl

Ähnlich wie bei HoneyPot2: Konstruiert von JS wird mit dem Bedarf verglichen. Der Unterschied besteht darin, dass der Anfangswert über den GET-Parameter übergeben wird.

Fazit

Die meisten Webmaster werden feststellen, dass eine Mischung der oben aufgeführten Lösungen (mit Ausnahme des Nichtzulassens von benutzergenerierten Inhalten) am besten für ihre Website geeignet ist und mindestens eine Lösung implementiert werden muss , um zu verhindern, dass automatisierter Spam die Diskussionen der Besucher unterdrückt.

danlefree
quelle
1
+1 durch Antwort! Ich möchte hinzufügen, dass Sie eine Art Belohnungssystem für Benutzer implementieren können, die Spam als Teil der Methode "Nach Benutzern moderieren" melden. In der Anwendung, die ich gerade erst erst erstelle, erhalten Benutzer, die Spam erfolgreich melden, "Spam-Killer-Punkte", die wie das Angeben von Rechten auf ihren Profilen aussehen. Außerdem können sie diese Punkte wie die Währung auf der Website ausgeben, um bei der Profilsuche höhere Listungsergebnisse zu erzielen. Dies eröffnet natürlich die Möglichkeit eines Missbrauchs, daher muss ich mir einen Weg ausdenken, um diese Form von Spam zu bekämpfen, sollte es dazu kommen.
JakeRow123
@ JakeRow123 Ich habe einen Abschnitt über Gamification hinzugefügt: Sie können ihn jederzeit bearbeiten und Ihre Gedanken hinzufügen.
5

Wir haben vor kurzem beseitigt den Spam aus unserem Kontakt Formular mit einer sehr einfachen Implementierung. Wir haben eine Eingabe mit der Bezeichnung "URL:" in das HTML-Formular eingefügt und sie für die tatsächlichen Benutzer unsichtbar gemacht. Dann prüfen wir im Formularprozessor, ob es einen Wert hat, und handeln entsprechend.

Die Spambots ziehen die ganze Zeit den Köder an. Sie geben eine URL zu einer Spam-Site ein. Unser Skript sieht das und wirft den Kommentar weg (tatsächlich recyceln wir die Teile, weil wir versuchen, eine umweltfreundlichere Art von Unternehmen zu sein). Wir haben den anstößigen Kommentar noch eine Weile in einer Datenbanktabelle gespeichert, um ihn dann zu überprüfen. Wir haben uns jedoch geweigert, die Ergebnisse irgendwo per E-Mail zu versenden. So wissen wir, dass es funktioniert hat.

Mit dieser einfachen Methode haben wir mehr als 30 Spam-Nachrichten "Kontakt" pro Tag an ZERO gesendet.

Viel Glück mit was auch immer Sie wählen!

WebDevKev
quelle
In der Eingabe <form> enthalten wir: <p class = "antispam"> Lassen Sie dieses Feld leer: <input name = "url" width = "200" /> </ p> Im Verarbeitungsskript haben wir: if (isset ($ _SESSION ['url']) && $ _SESSION ['url'] == '') {mail ($ to, $ subject, $ body, $ headers); }
WebDevKev
1

Ich habe ein Forum, in dem ich vorübergehend anonyme Beiträge freigeschaltet habe. Ich wollte Captcha nicht verwenden, da ich selbst oft Schwierigkeiten habe, sie zu lesen, was dazu führen kann, dass keine Kommentare abgegeben werden. Um Spam vorzubeugen, habe ich mit Akismet eingehende Nachrichten abgefangen. Akismet ist nicht kugelsicher, aber es hat mir das Leben sehr erleichtert.

Sie müssen sich jedoch der False Positives bewusst sein. Ich habe also ein "Spam-Attribut" für mein Post-Objekt erstellt und es auf den Rückgabewert von Akismet gesetzt. Wenn ein Beitrag als Spam markiert würde, würde ich mich selbst und eine E-Mail geben, wonach ich entscheiden könnte, ob es sich um Spam handelt oder nicht.

Dofs
quelle
3
Dies ist eine allumfassende Community Wiki Frage und Antwort - Schwerpunkt der allgemeinen Informationen über Spam - Schutz für den Einsatz in zweifacher Ausfertigung Fragen Glatt. Gerne können Sie Ihre Empfehlungen in die Liste aufnehmen, wenn Sie möchten.
Danlefree
+1 akismet scheint einen ziemlich guten Job zu machen, bekommt sie nicht alle und blockiert manchmal legitime Kommentare, aber 99% der Zeit ist es richtig
sam
0

Bitte besuchen Sie MediaWiki.
Nach Erweiterung suchen: Moderation Mit
dieser Erweiterung können Sie Spam auf Websites verhindern, die Sie kontrollieren.
Ich habe diese MediaWiki-Erweiterung oft benutzt.
Und es verhindert, dass Bots Spam-Artikel erstellen.

Jehova sagt
quelle