Blockadeliste
Die Blockadeliste ist eine von mehreren Sicherheits-Maßnahmen, die unternommen werden können, um Ihr Wiki vor Spam und anderen unwillkommenen Beiträgen zu schützen.
Unglücklicherweise macht die offene Editierbarkeit vieler Wikisysteme sie zu attraktiven Zielen von "Link-Spam" oder "Wiki-Spam", in denen Verweise auf Seiten hinzugefügt werden mit dem Bestreben, Suchmaschinen-Rankings zu verbessern oder die Zugriffszahlen auf andere Seiten zu erhöhen. Viele Linkspammer haben sogar automatisierte Systeme entwickelt, die Sites finden, welche Besuchern Eingaben erlauben und die dann diese Sites mit unerwünschten Links zu überfluten versuchen. Dazu kommt, und damit ist noch schwerer umzugehen, nackter Wiki-Vandalismus, wo unsinnige Veränderungen vorgenommen werden oder sogar ganze Seiten ausgetauscht werden.
Die bei weitem beste Gegenmaßnahme gegen Wiki-Spam ist, die Bearbeitbarkeit durch Passwörter einzuschränken (siehe Passwörter und Passwörter verwalten). Erfahrungen haben gezeigt, dass Passwörter effektiv sein können, sogar, wenn das Passwort vielen bekannt ist, und sogar, wenn das Passwort in der Site veröffentlicht wird. Allerdings gibt es viele Fälle, in denen der Einsatz von Passwörtern eine Behinderung darstellen würden, in diesen Fällen wird lieber eine Form von blockierenden Listen eingesetzt.
Blockadelistengrundlagen
Eine Blockadeliste ist eine Liste von IP-Adressen, Wendungen und regulären Ausdrücken, die davon abgehalten werden, in Wikiseiten eingefügt zu werden. PmWiki wird mit einer eingebauten Blocklist-Fähigkeit ausgeliefert; Blocklist kann eingeschaltet werden durch das Einfügen der folgenden Zeile in die local/config.php
:
$EnableBlocklist = 1;
Das weist PmWiki an, die SiteAdmin.Blocklist?-Seite und die "SiteAdmin.Blocklist-Farm"-Seite zu scannen (und möglicherweise noch andere Seiten – siehe unten), um nach Wendungen und IP-Adressen zu suchen, die vom Veröffentlichen in der Site ausgeschlossen werden sollen.
Blockieren über Wörtern oder Wendungen
Die einfachste Form etwas zu blockieren ist einfach eine Zeile einzufügen, die "block:
" enthält, gefolgt von einem Wort oder einer Wendung, das oder die von der Veröffentlichung ausgeschlossen werden soll.
Zum Beispiel würde eine Zeile wie
block:spam.com
in SiteAdmin.Blocklist
jegliche Veröffentlichung, die den String "spam.com" (groß- oder kleingeschrieben) irgendwo im Text enthält, blockieren.
Blockieren über IP-Adressen
Manchmal möchten wir Veröffentlichungen einschränken, die von bestimmten IP-Adressen oder -Adressbereichen kommen, die als Quelle von Wiki-Spam bekannt sind. Wenn eine Blockadelistenseite eine IP-Adresse der Form "a.b.c.d" oder "a.b.c.*" enthält, werden jegliche Veröffentlichungen, die von dieser Adresse oder diesen Adressen kommen, blockiert.
Blockieren über reguläre Ausdrücke
Blockieren von einfachen Wörtern kann manchmal Schwierigkeiten erzeugen, ein einfaches "block:zial
" beispielsweise würde auch das Wort "Spezialist" blockieren.
Für diese Fälle ist es oft hilfreich, reguläre Ausdrücke zu benutzen, wie in:
block:/\bzial\b/
Das heißt, blockiere "zial" nur, wenn es nicht mitten in einem längeren Wort steht. Der einleitende Schrägstrich (/) nach "block:" weist PmWiki an, einen regulären Ausdruck auszuwerten, anstatt einen einfachen Stringabgleich zu machen. (Blocklist benutzt PCRE oder "Perl Compatible Regular Expressions"; siehe http://php.net/manual/en/ref.pcre.php wegen weiterer Informationen.)
Regulärer Ausdruck zum blockieren von 'href'
Wenn Sie 'href
' blockieren wollen, können Sie den folgenden Ausdruck verwenden:
block:/[^\w\\]href\b/
welches 'href
', aber weder '\href
' noch 'toughref
' blockiert.
Der reguläre Ausdruck kann folgendermaßen interpretiert werden: er passt auf jedes Zeichen, das weder ein Wortzeichen noch ein '\' ist, gefolgt von 'href', das mit einer Wortgrenze endet.
Autoren wissen lassen, warum sie blockiert wurden
In der Standardeinstellung sagt Blocklist den Autoren nur, dass eine bestimme Bearbeitung blockiert wurde, gibt aber keinen konkreten Grund für die Blockade an (z. B. die missbilligte Wendung). Setzen Sie das Folgende in eine lokale Anpassungsdatei, wird auch der Grund für die Blockade angegeben:
$EnableWhyBlocked = 1;
Mehrere Blockadelisten verwalten
PmWiki gestattet die Berücksichtigung von Blockadelisteneinträgen aus mehreren Seiten, indem die $BlocklistPages
-Variable gesetzt wird.
Im Standard ist $BlocklistPages
auf "SiteAdmin.Blocklist
" gesetzt, auch auf die automatisch herunterladbaren Blockadelisten wie unten beschrieben.
PmWiki nutzt alle Einträge in allen Blockadelisten, um Wiki-Spam zu filtern.
Setzen Sie einen Wert für $BlocklistPages, ändert das den Standard:
$BlocklistPages = array('Main.Blocklist', '{$Group}.Blocklist');
Die Reihenfolge der Blockadelisten spielt keine Rolle – schlussendlich werden alle Blockadelistenseiten benutzt und die unblock:
-Einträge werden bearbeitet, nachdem alle Blockadelistenseiten bearbeitet worden sind.
Automatisch bezogene Blockadelisten
Blockadelisten zu verwalten ist eine relativ einfache Angelegenheit, kann aber mit der Zeit ziemlich lästig werden. Mehrere Gruppen haben sich gebildet und verwalten "shared block lists", wo eine gemeinsame Blockadeliste für alle erreichbar gemacht wird. PmWikis Blockadelistenfähigkeit hat eingebaute Features, um solche gemeinsamen Listen automatisch herunterzuladen und upzudaten.
Wenn Sie ganz schnell mal Blockadelisten brauchen, machen Sie die folgende Einstellung in local/config.php
:
$EnableBlocklist = 10;
Das weist PmWiki an, nicht nur Blockadelisten auf der Site einzurichten, sondern sich auch selbst so zu konfigurieren, dass gut bekannte Blockadelisten wie MoinMaster automatisch empfangen und verwaltet werden.
Diese lokalen Kopien werden in SiteAdmin.Blocklist-MoinMaster
gespeichert und einmal pro Tag aufgefrischt (wie vom Wert von $BlocklistDownloadRefresh
vorgegeben).
Um automatisch die SiteAdmin.Blocklist?-Seite zu erhalten, die auf pmwiki.org benutzt wird, fügen Sie die folgende Einstellung zu local/config.php hinzu:
$BlocklistDownload["$SiteAdminGroup.Blocklist-PmWiki"] = array('format' => 'pmwiki');
Die Blockadeliste von chongqed.org, die wir in der Vergangenheit genutzt haben, ist seit 2013 nicht mehr verfügbar .
Ignorieren bestimmter Einträge in einer Blockadeliste (unblock)
Wenn Sie eine große Blockadeliste haben oder Blockadelisten, die von externen Sites automatisch aufgefrischt werden, kann es sein, dass manche Einträge unangemessen oder überempfindlich sind und legitimen Inhalt blockieren. In dem Fall kann ein Wiki-Administrator "unblock:" in einer Blockadelistenseite benutzen, um einen Eintrag zu ignorieren. Um "spam.com" zu erlauben, auch wenn eine andere Blockadeliste einen Blockadeeintrag dafür enthält, setzen Sie beispielsweise:
Damit das funktioniert, muss das Wort oder die Wendung exakt das/die gleiche sein wie in dem Original.
Rechte für Blockadelistenseiten
Generell möchte ein Administrator die SiteAdmin.Blocklist
-Seite und alle anderen Blocklist-Seiten gegen Bearbeiten schützen, um unliebsame Änderungen an den Blockadelisten zu verhindern (siehe Passwörter).
Da die meisten Seiten in der SiteAdmin.*
-Gruppe standardmäßig gegen Bearbeiten geschützt sind, ist das kein Problem.
Administratoren möchten die Blockadelistenseiten vielleicht auch gegen Lesen schützen, damit der präzise Wortlaut der Wendungen und Worte bzw. die IP-Adressen nicht öffentlich bekannt werden. (Es liegt in der Natur der Blockadelisten, dass sie Ausdrücke oder Wendungen enthalten, die Manchem unangemessen oder offensive erscheinen.)
Alle automatisch bezogenen Seiten (s. o.) werden gegen Lesen geschützt außer vorm Administrator.
Administratoren
Detaillierte Konfiguration automatisch heruntergeladener Blockadelisten
Automatisches Herunterladen von Blockadelisteninformationen wird von dem $BlocklistDownload-Array kontrolliert. Ein Eintrag für MoinMaster könnte darin so aussehen:
$BlocklistDownload["$SiteAdminGroup.Blocklist-MoinMaster"] = array( 'url' => 'http://moinmaster.wikiwikiweb.de/BadContent?action=raw', 'format' => 'regex', 'refresh' => 86400);
Das heißt, die Blockadelistendaten werden von dem gegebenen Url in die SiteAdmin.Blocklist-MoinMaster
-Seite geladen, die Einträge sind reguläre Ausdrücke, und die Information wird alle 86.400 Sekunden (jeden Tag) aufgefrischt.
Wenn 'refresh' weggelassen wird, wird die Seite in dem Zeitintervall aufgefrischt, das durch $BlocklistDownloadRefresh
gegeben ist.
Wenn 'format' weggelassen wird, wird angenommen, dass die Seite PmWiki-formatierte Einträge (wie oben beschrieben) enthält.
Wenn 'url' weggelassen wird, wird die Information von einem Standardort auf der pmwiki.org-Site besorgt.
Um ein Auffrischen einer automatisch bezogenen Blockadeliste zu erzwingen, löscht man sie einfach – eine neue Version wird beim nächsten Blockadelistenscan installiert. Blockadelistenseiten werden als Reaktion auf jede ?action=edit-Anfrage auf Download geprüft.
Wenn Sie die Blockadelistenseiten in der config.php angeben, müssen Sie auch die automatisch aufgefrischten Seiten aufführen, sonst werden sie nicht aufgefrischt oder erzeugt, selbst wenn Sie $EnableBlocklist = 10;
benutzen.
Farmweite Blockadelisten
Eine Blockadeliste kann farmweit angewendet werden (siehe SharedPages).
Nachdem die Seiten angelegt wurden, können sie in das Verzeichnis der Farm, shared.d/
, verschoben werden.
Blockadelistenvariablen
Die folgenden Variablen helfen, die Konfiguration von und Operationen auf Blockadelisten zu kontrollieren.
$EnableBlocklist
- Auf einen von null verschiedenen Wert gesetzt, werden Blockadelisten auf dieser Site angeschaltet. Bei einem Wert von 10 oder höher werden Einträge für automatisch bezogenen Standardblockadelisten hinzugefügt.
-
$EnableBlocklist = 1; # aktiviere Blocklisten
-
$EnableBlocklist = 10; # automatische Standardblockadelisten
$EnableWhyBlocked
- Standardmäßig werden Autoren nicht über den Grund einer Blockade informiert, auf 1 gesetzt bekommen Autoren gesagt, welche Wendung oder IP-Adresse die Blockade verursacht hat.
-
$EnableWhyBlocked = 1; # teile den Grund für die Blockade mit
$BlocklistPages
- Ein Array von Seiten, die auf Blockadelisteneinträge geprüft werden. Die Elemente des Arrays dürfen Seitenspezifische Variablen enthalten.
Standard ist "
SiteAdmin.Blocklist
" plus alle automatisch bezogenen Blockadelistenseiten. $BlocklistMessageFmt
- Die Nachricht, die der Autor erhält, wenn ein Posting blockiert wurde.
$BlockedMessagesFmt
- definiert für jeden Typ von Blockade, die durchgeführt wird, die Nachrichten, die benutzt werden, wenn $EnableWhyBlocked gesetzt ist. Augenblicklich werden nur die Typen 'ip' und 'text' erkannt.
-
$BlockedMessagesFmt['ip'] = "IP address blocked from posting: ";
-
$BlockedMessagesFmt['text'] = "Text blocked from posting: ";
- $BlocklistDownload
- Ein Array mit automatisch bezogenen Blockadelisten. Die Schlüssel des Arrays sind die Seiten, in denen die Blockadelisten gespeichert werden sollen, die Werte enthalten den Url, das Format und das Auffrischungsintervall für die bezogene Blockadeliste.
# Lade die MoinMaster-Blockadelisten alle zwölf Stunden herunter $BlocklistDownload["$SiteAdminGroup.Blocklist-MoinMaster"] = array( 'url' => 'http://moinmo.in/BadContent?action=raw', 'format' => 'regex', 'refresh' => 43200); # Lade jeden Tag eine Blockadeliste von pmwiki.org herunter $BlocklistDownload["$SiteAdminGroup.Blocklist-Shared"] = array( 'format' => 'pmwiki');
$BlocklistDownloadRefresh
- Der Standardwert für das Auffrischungsintervall für alle
$BlocklistDownload-Einträge
, die keine expliziten Angaben dazu enthalten. -
# führe standardmäßig ein automatisches Herunterladen pro Woche aus
-
$BlocklistDownloadRefresh = 3600 * 24 * 7;
$BlocklistDownloadFmt
- Das Format, das beim Speichern automatisch bezogener Blockadelisten benutzt wird.
$EnableBlocklistImmediate
- Einige Kochbuchrezepte machen ein Seiten-Update mit Autoreneingabe, benutzen aber nicht die eingebaute Daten-Veröffentlichungs-Routinen.
Wenn
$EnableBlocklistImmediate
gesetzt ist (Standard), und die aktuelle Aktion ist in$BlocklistActions
(s. u.) aufgelistet, wird ein sofortiger Blockadelistenscan des hereinkommenden Textes durchgeführt. $BlocklistActions
- Eine Liste von Aktionen, die eine sofortige Blockadelistenprüfung auslösen (siehe
$EnableBlocklistImmediate
oben). -
# Führe sofortige Checks für ?action=comment aus
-
$BlocklistActions['comment'] = 1;
-
# Führe sofortige Checks für ?action=postdata aus
-
$BlocklistActions['postdata'] = 1;
Übersetzung von PmWiki.Blocklist, Originalseite auf PmWikiDe.Blocklist — Rückverweise
Zuletzt geändert: | PmWikiDe.Blocklist | am 10.06.2022 |
PmWiki.Blocklist | am 10.06.2022 |