Beobachtete Wörter

Ich hatte mindestens zwei Websites, die von einer Spam-Welle getroffen wurden, die darauf ausgelegt zu sein scheint, LLMs zu vergiften. Derselbe Angriff wurde hier mindestens einmal gemeldet (Anyone else currently undergoing mass spam attack?). Die beste Lösung ist die Einrichtung von Discourse AI - Spam detection, was ich sehr empfehlen kann, aber es ist ein wenig mühsam. Hier ist eine Übergangslösung, die Sie implementieren können und die nur wenige Minuten dauert.

Es wird davon ausgegangen, dass Sie ein unixartiges Betriebssystem (z. B. Linux oder Mac) haben. Wenn Sie Windows verwenden und in ein Terminal kopieren/einfügen können, können Sie sich per SSH mit Ihrem Discourse-Server verbinden und dies dort einfügen.

Es erstellt eine Reihe von überwachten Wörtern, die aus einem kürzlich aufgetretenen Angriff generiert wurden, den ich gesehen habe. Wenn Sie mit nano oder einem ähnlichen Programm vertraut sind, können Sie es bearbeiten, bevor Sie es ausführen. Wenn nicht, können Sie dieses Skript ausführen und dann die Wörter, die Sie nicht mögen, mit einem Klick pro Wort löschen.

Die blockierten Wörter können sehr störend sein, da sie legitime Benutzer daran hindern, Beiträge mit diesen Wörtern zu erstellen. Schauen Sie sich also an, ob diese Wörter wahrscheinlich in legitimen Beiträgen auf Ihrem Forum vorkommen!

Geben Sie Ihre Website-URL, Ihren API-Schlüssel und Ihren API-Benutzer in die unten stehenden Felder ein (sie sind nur in Ihrem Browser sichtbar – aber Sie können sie auch einfach so einfügen und die Datei bearbeiten, wenn Sie möchten) und kopieren Sie dann den Codeblock in ein Terminal. Es wird upload_watched_words_full.sh erstellt und ausführbar gemacht. Sie können es dann mit ./upload_watched_words_full.sh ausführen.

cat <<'EOF' > upload_watched_words_full.sh
#!/usr/bin/env bash
# Usage: ./upload_watched_words_full.sh

DISCOURSE_URL="=URL="
API_KEY="=API_KEY="
API_USERNAME="=API_USERNAME="

# High-confidence block words
BLOCK_WORDS=(
  "customer service number"
  "contact number"
  "support number"
  "refund phone number"
  "toll free"
  "24/7 support"
  "helpline"
  "call us"
  "live representative"
  "technical support"
  "lufthansa"
  "royal caribbean"
  "coinbase"
  "robinhood"
  "reservation number"
  "booking number"
  "flight cancellation"
  "name change fee"
  "║"
  "⇆"
  "★"
  "®️"
  "™️"
)

# Medium-risk flag words
FLAG_WORDS=(
  "customer service"
  "customer support"
  "support team"
  "help desk"
  "hotline"
  "agent"
  "representative"
  "contact us"
  "phone support"
  "service center"
)

# Require-approval words
REQUIRE_APPROVAL_WORDS=(
  "urgent"
  "immediate action"
  "act now"
  "limited time"
  "exclusive offer"
  "approve this"
  "verify account"
)

# Function to send words in batch
add_words () {
  local ACTION="$1"
  shift
  local WORDS=("$@")

  # Build words[] parameters
  local DATA=""
  for w in "${WORDS[@]}"; do
    DATA+="words%5B%5D=$(printf '%s' "$w" | jq -s -R -r @uri)&#"
  done
  DATA+="replacement=&action_key=${ACTION}&case_sensitive=false&html=false"

  echo "Uploading ${ACTION} words..."
  curl -s -X POST "${DISCOURSE_URL}/admin/customize/watched_words.json" \
    -H "Api-Key: ${API_KEY}" \
    -H "Api-Username: ${API_USERNAME}" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    --data "$DATA"
  echo -e "\nDone."
}

# Upload block words
add_words "block" "${BLOCK_WORDS[@]}"

# Upload flag words
add_words "flag" "${FLAG_WORDS[@]}"

# Upload require-approval words
add_words "require_approval" "${REQUIRE_APPROVAL_WORDS[@]}"
EOF

# Make the script executable
chmod +x upload_watched_words_full.sh

echo "Script 'upload_watched_words_full.sh' created and made executable."

8 „Gefällt mir“

Aber Watched word Approval doesn't work if a user edits the reply?

Nun, dem habe ich keine Beachtung geschenkt. Meine naive Hoffnung ist, dass die Spammer das nicht wissen werden. :person_shrugging:

1 „Gefällt mir“

Die Bots, die wir vor ein paar Jahren hatten, posteten Kauderwelsch wie dhfhstyhjfhhr als Thema, um Threads zu erstellen und den Keyword-Filter zu umgehen. Dann bearbeiteten sie ihn zur eigentlichen Spam-Nachricht „beste Online-Casinos“. :expressionless_face:

2 „Gefällt mir“

Das ist bizarr, dass das Bearbeiten des Beitrags die Überwachungswörter umgeht.

Vielleicht denken diese Spammer nicht daran, das zu tun. Oder es hilft auch gar nichts. :person_shrugging:

1 „Gefällt mir“

Danke Jay, tolles Skript, danke, dass du es erstellt hast. Hat es jemand, der es benutzt hat, in Bezug auf den Workaround zum „Bearbeiten von Beiträgen“ als funktionierend empfunden? Bearbeiten die Bots die Beiträge oder spammen sie nur den Text direkt?

Ich weiß es nicht, aber wenn das ein Problem ist, könnten Sie die Einstellungen so ändern, dass einige Benutzer keine Beiträge bearbeiten können („Gruppen, die das Bearbeiten von Beiträgen erlauben“), vielleicht indem Sie TL2 verlangen und die Einstellungen so anpassen, dass es einfacher/schwieriger wird, TL2 zu erreichen.

Für normale Benutzer, insbesondere für neue, ist die Unfähigkeit, einen Beitrag zu bearbeiten, wahrscheinlich keine große Sache und vielleicht nicht einmal etwas, das sie erwarten.

1 „Gefällt mir“

Guter Punkt. Ich werde es so ändern, dass tl_0 keine Beiträge bearbeiten kann.

Überprüfung eines der letzten Beiträge:

Es sieht so aus, als wäre es ursprünglich nur Müll gewesen und dann zu Spam bearbeitet worden, was die Überwachung von Wörtern umgangen hätte, soweit ich das verstehe.

Da Beitrag-Bearbeitungen von harmlosen Kauderwelsch zu Spam Teil des Modus Operandi von Bots bei ihren Bemühungen sind, Spam-Filter zu vereiteln, glaubt das Discourse-Team, dass tl_0 standardmäßig nicht in der Lage sein sollte, Beiträge zu bearbeiten?

4 „Gefällt mir“

Wow. Ich bin überrascht, dass die Standardeinstellung TL0 enthält.

Gut zu wissen, dass diese Spammer diesen Trick anwenden.

Ich denke, das KI-Spam-Modul hätte es abgefangen.

2 „Gefällt mir“

Oh, sicher hätte es das. Aber obwohl es nicht super teuer ist, ist es doch etwas mühsam, KI auf jeder Discourse-Instanz einzurichten, um Spam abzuwehren. Viele meiner Foren würden es (oder wollen es) für keine der anderen recht nützlichen KI-Funktionen von Discourse benötigen.

1 „Gefällt mir“

Die Lösung hier ist nicht, die Bearbeitung von Beiträgen durch tl0 oder eine andere Gruppe zu verhindern.

Die Lösung besteht darin, dafür zu sorgen, dass die Bearbeitung eines Beitrags keine Seitenschutzmaßnahmen umgeht. Ein bearbeiteter Beitrag könnte (wie wir gesehen haben) Spam, Hass oder andere unerwünschte Verhaltensweisen enthalten. Wenn bearbeitete Beiträge “Watched Words” und andere Filter umgehen, wird dies definitiv zu einem Standardansatz, nicht nur für Bots, sondern auch für Menschen, die Seitenschutzmaßnahmen umgehen wollen.

3 „Gefällt mir“

Zustimmung. Es erscheint bizarr, dass es nicht so funktioniert. Und wenn ich es richtig verstehe, ist es schon lange kaputt.

Oh, es ist das „erwartete Verhalten“:

Ich wette, so ist es entstanden, vielleicht.

Es scheint, dass die beobachteten Wörter einfach vor dem Speichern angewendet werden könnten, aber ich habe den Code nicht angesehen.

2 „Gefällt mir“

Es stellt sich die Frage, was es für einige Arten von beobachteten Wörtern bedeutet, für eine Bearbeitung zu gelten. Aber es ist auch klar, dass diese Einschränkung den Wert von beobachteten Wörtern stark reduziert.

Ich würde erwarten, dass es hilfreich wäre, eine Spezifikation dafür vorzuschlagen, was genau für jeden Typ im Falle einer Bearbeitung geschehen sollte; dies würde die Feature-Anfrage umsetzbarer machen. Diese Arbeit habe ich jedoch nicht geleistet, obwohl ich gelegentlich Zeit damit verbracht habe, über spezifische Fälle nachzudenken.

3 „Gefällt mir“