Frage

Welche Mechanismen kennen Sie, die den Missbrauch Ihrer Website durch anonyme Spammer verhindern?

Nehmen wir zum Beispiel an, ich habe eine Website, auf der Leute über etwas abstimmen können.Aber ich nicht Ich möchte, dass jemand etwas ganz nach oben spammt.Also habe ich (a) ein Konto erstellt und nur einmal abstimmen dürfen und (b) CAPTCHA, um Spam zu reduzieren.Welche anderen Methoden kennen Sie und wie gut funktionieren sie?

War es hilfreich?

Lösung

Das Wichtigste, was mir aufgefallen ist, ist, dass Ihr System bei allem, was Sie tun, einzigartig sein soll.Sie möchten, dass ein Angreifer sein Automatisierungsprogramm an Ihre spezifische Site anpassen muss, anstatt einfach ein bereits vorhandenes Skript darauf zu werfen, das fast überall funktioniert.Es muss nicht einmal kryptografisch sicher sein;Es muss nur dazu führen, dass sich Ihre Website ein wenig von der Norm unterscheidet.

Das bedeutet nicht, dass Sie so etwas wie ein vorgefertigtes Captcha-Widget nicht verwenden können oder sollten.Benutzen Sie auf jeden Fall einen davon als Ausgangspunkt!Es bedeutet nur, dass Sie es irgendwo anpassen müssen, damit etwas Besonderes passiert, das außerhalb der Norm liegt und jedes bereits vorhandene Skript zerstört, das es normalerweise zunichte machen könnte.

Wenn Ihre Website so groß wird, dass Angreifer sie gezielt angreifen, wird Ihre einfache kleine Anpassung wahrscheinlich nicht mehr standhalten und Sie müssen vielleicht etwas Besonderes tun und über echte Kryptografie und all das nachdenken.Aber das ist eines der Dinge, die ein „gutes“ Problem sind.

Andere Tipps

alt text

Aus xkcd

Für ein CAPTCHA-System empfehle ich wärmstens reCaptcha.

Herkömmliche computergenerierte CAPTCHAs werden dies tun irgendwann kaputt gehen durch die Entwicklung eines ausreichend intelligenten Systems.Zum Beispiel, Hier ist jemand der behauptet, das Google CAPTCHA, das früher als unzerbrechlich galt, mit einer Trefferquote von 30 % zu knacken.reCAPTCHA zeigt Ihnen per Definition nur Bilder an, die von der optischen Zeichenerkennung nicht erkannt werden können.

Und gleichzeitig ist der Einsatz Ihrer Nutzer auf das Gemeinwohl ausgerichtet – sie helfen bei der Digitalisierung von Büchern, indem sie Wörter erkennen, die nicht automatisch erkannt werden können.

Sehen Hier für weitere Erklärungen und zum Ausprobieren.

  • Begrenzen Sie die Anzahl der Stimmen pro IP-Adresse pro Zeit
  • Blockieren Sie anonymisierende Proxys.
  • Zur Abstimmung:Wie wäre es, wenn der Wert, der vom Formular zurückgegeben werden muss, „pro Sitzung“ gemischt wird?Sobald „1“ das erste Element bedeutet, bedeutet „2“ das zweite.Dann bedeutet „77“ das erste Element, „812“ das zweite, ...hinter den Kulissen könnte eine einfache Mathematik stecken, aber sie verhindert, dass Benutzer immer wieder dieselbe HTTP-Anfrage senden.
  • Was bei mir sehr gut funktioniert hat:Verwenden Sie AJAX-Formulare, keine einfachen HTTP-Formulare.Technisch gesehen ist es nicht viel komplizierter, Stimmen zu fälschen, aber ich habe eine einfache Blog-Software geschrieben und ihr einziger SPAM-Schutzmechanismus besteht darin, die Kommentare über AJAX einzureichen – bisher kein SPAM.

Ich bin ein Fan des „Hidden Field“-CAPTCHA.Ich kann mich nicht erinnern, wo ich darüber gelesen habe, aber die Idee ist folgende:

  • Erstellen Sie Ihr Formular wie gewohnt
  • Fügen Sie ein zusätzliches Feld hinzu, blenden Sie es jedoch aus (d. h. style="display:none" auf der umgebenden div- oder Tabellenzeile)
  • Wenn das Feld nach dem Absenden leer ist, führen Sie die entsprechende Aktion aus (z. B. eine E-Mail senden).Wenn das Feld ausgefüllt ist, handelt es sich um einen Roboter-Einreicher

Der einzige Fall, in dem dies fehlschlägt, ist, wenn der Browser des Benutzers CSS nicht unterstützt (oder er es ausgeschaltet hat), was sehr selten vorkommt.

Für Stimmen erheben Sie Gebühren, wie es in einigen „Talent“-Shows im Fernsehen der Fall ist, und werden bis zur Bank gespammt!

Im Ernst, das ist ein wirklich schwieriges Problem, und eines Tages (vielleicht bald, wenn Sie Ray Kurzweil zuhören) werden Computer Tests durchführen, um Menschen auszusortieren.Die Antworten, die ich der Liste hinzufüge, haben offensichtliche Nachteile, aber nur der Übersicht halber:Moderation (die Tests von Menschen durchführen lassen) und IP-basiertes Tracking (die Anzahl der Stimmen eines Hosts begrenzen).

stackoverflow verfügt über einige Funktionen, die dabei helfen;Ich denke, der nützlichste Schritt, den Sie unternehmen können, besteht darin, anonymen Benutzern und neuen Konten die Möglichkeit zu entziehen, abzustimmen.Auf diese Weise kann sich niemand für Hunderte von Konten anmelden und mit seiner Stimme andere Benutzer überwältigen.Ich würde sagen, dass die Forderung nach ein paar Posts oder einer Mitgliedschaft für einen bestimmten Zeitraum gute Optionen sind.

Manche würden sagen, man könnte eine Stimme pro IP-Adresse zulassen, um dieses Problem anzugehen, aber ich habe viele Spiele gespielt, bei denen böswillige Benutzer mit einer nahezu unendlichen Anzahl von Proxys sich der Sicherheit auf IP-Adressenbasis widersetzten.Es wirkt abschreckend, aber ein erfahrener Benutzer wird es leicht umgehen.

Dies ist das Studiengebiet von Menschliche Berechnung.

Ein hervorragendes Video von Luis von Ahn gibt es hier:http://video.google.com/videoplay?docid=-8246463980976635143

In den Antworten darauf finden sich einige Ideen Bestes nicht bildbasiertes CAPTCHA? Frage, falls du es noch nicht gesehen hast.

Normalerweise verwende ich eine Kombination aus beiden:Dem anonymen Benutzer steht es frei, alles zu durchsuchen, aber wenn er abstimmen möchte, muss er sich registrieren.

Im Registrierungsprozess verwende ich je nach Situation ein Opt-in per Mail (um die Registrierung abzuschließen und zu bestätigen, dass zumindest das Postfach vorhanden ist) und/oder ein CAPTCHA.

Ab diesem Zeitpunkt können Sie entscheiden, ob der Benutzer mehr als einmal vonte oder eine andere Regel verwenden darf.

Übrigens bin ich kein Fan der IP-basierten Einschränkungen:Es gibt viele Situationen, in denen das Netzwerk großer Organisationen nur wenige IP-Adressen für alle Benutzer verwendet, sodass das Risiko hoch ist, Benutzer zu blockieren, die abstimmen könnten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top