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."
