הרחבה:מסנן ההשחתות

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:AbuseFilter and the translation is 31% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎čeština • ‎български • ‎русский • ‎עברית • ‎سنڌي • ‎فارسی • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
MediaWiki extensions manual
OOjs UI icon advanced.svg
AbuseFilter
Release status: stable
AbuseFilter-Management.png
Implementation User activity , Special page , API
Description מאפשר התנהגות ספציפית - מבוססת על הגבלות שניתן ליישם על פעילות הוויקי.
Author(s)
Compatibility policy release branches
MediaWiki 1.33+
PHP 5.4+ מומלץ
Database changes Yes
Tables abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
License GNU General Public License 2.0 or later
Download
  • $wgAbuseFilterActions
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterParserClass
  • $wgAbuseFilterRestrictions
  • $wgAbuseFilterNotifications
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterDisallowGlobalLocalBlocks
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterCustomActionsHandler
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterIPMaxAge
  • $wgAbuseFilterProfileActionsCap
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterPrivateDetailsForceReason
  • abusefilter-view
  • abusefilter-log
  • abusefilter-log-detail
  • abusefilter-revert
  • abusefilter-privatedetails
  • abusefilter-privatedetails-log
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify
  • abusefilter-modify-restricted
  • abusefilter-modify-global
Translate the AbuseFilter extension if it is available at translatewiki.net
Check usage and version matrix.
Issues Open tasks · Report a bug

הרחבת מסנן ההשחתות מאפשרת למשתמשים מורשים לקבוע פעולות מוגדרות על פעולות שנעשות ע"י משתמשים, כמו עריכות, ויצירת תגובה אוטומטית להתנהגויות מסוימות.

לדוגמה, ניתן ליצור מסנן כדי למנוע ממשתמשים אנונימיים להוסיף קישורים חיצוניים או לחסום משתמש שמוחק יותר מ-2000 תווים.

התקנה

  • Download and place the file(s) in a directory called AbuseFilter in your extensions/ folder.
  • Only when installing from git run Composer to install PHP dependencies, by issuing composer install --no-dev in the extension directory. (See T173141 for potential complications.)
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'AbuseFilter' );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • Configure as required.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

To users running MediaWiki 1.26 or earlier:

The instructions above describe the new way of installing this extension using wfLoadExtension(). If you need to install this extension on these earlier versions (MediaWiki 1.26 and earlier), instead of wfLoadExtension( 'AbuseFilter' );, you need to use:

require_once "$IP/extensions/AbuseFilter/AbuseFilter.php";

הגדרות

זכויות מוקצות

לאחר שהתקנת את ההרחבה, תצטרך להגדיר את הזכויות המוקצות בקובץ "LocalSettings.php".

זכות תיאור
abusefilter-modify שינוי מסנני השחתות
abusefilter-view צפייה במסנני השחתות
abusefilter-log צפייה ביומן ההשחתות
abusefilter-log-detail צפייה ביומן ההשחתות המפורט
abusefilter-privatedetails צפייה בנתונים פרטיים ביומן ההשחתות
abusefilter-modify-restricted שינוי מסנני השחתות עם פעולות מוגבלות
abusefilter-modify-global יצירה ושינוי של מסנני השחתות גלובליים
abusefilter-revert שחזור כל השינויים שבוצעו על־ידי מסנן השחתות מסוים
abusefilter-view-private צפייה במסנני השחתות שסומנו כפרטיים
abusefilter-log-private צפייה ברשומות יומן של מסנני השחתות שסומנו כפרטיים
abusefilter-hide-log הסתרת רשומות ביומן ההשחתות
abusefilter-hidden-log צפייה ברשומות מוסתרות ביומן ההשחתות
abusefilter-privatedetails-log הצגת יומן גישה לנתונים פרטיים של מסנן ההשחתות

לדוגמה, ההגדרות לדוגמה יאפשרו לטכנאים לעשות מה שבא להם עם מסנן הנצאה, ולאפשר לכולם לראות את הדוח ואת הגדרות המסנן הציבוריות:

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
מסננים שמסומנים כפרטיים ניתנים לצפייה רק ע"י משתמשים עם הרשאת abusefilter-modify או לחילופין הרשאת abusefilter-view-private.

Parameters

שם המִשתנה ערך ברירת מחדל תיאור
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => true,
    'tag' => true
]
הפעולות האפשריות שיכולות להתבצע ע"י מסנני השחתות. When adding a new action, check if it is restricted in $wgAbuseFilterRestrictions and, if it is, don't forget to add the abusefilter-modify-restricted right to the appropriate user groups.
$wgAbuseFilterConditionLimit
1000
המספר המקסימלי של 'תנאים' הניתנים לשימוש בכל פעם שהמסננים פוגשים בשינוי. (מסננים יותר מורכבים דורשים יותר 'תנאים').
$wgAbuseFilterValidGroups
[
    'default'
]
רשימת ה"קבוצות" אליה ניתן לחלק מסננים. כברירת מחדל ישנה רק קבוצה אחת. Other extensions may add other groups.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
השבת את מסנן זה, אם הוא מתאים ליותר מ 2 עריכות, המהוות יותר מ -5% מהפעולות שנבדקו נגד הקבוצה של המסנן בתקופה "שנצפתה" (לכל היותר יום אחד), אלא אם כן המסנן השתנה ב86400 שניות האחרונות (יום אחד) See emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
שם מחלקת הניתוח של AbuseFilter.
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
למשתמשים חייבת להיות הרשאת "abusefilter-modify-restricted", כמו גם "abusefilter-modify" כדי ליצור או לשנות מסננים המבצעים את הפעולות הללו.
$wgAbuseFilterNotifications
false
מאפשר להגדיר את ההרחבה לשליחת התרעות לדף מיוחד:RecentChanges או ל-UDP. אפשרויות זמינות: rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
אפשר התרעות למסננים פרטיים.
$wgAbuseFilterCentralDB
null
שמו של מסד הנתונים שבו מסנני השחתות הגלובליים יאוחסנו בתוכו (נתמך רק בגרסת הפיתוח האחרונה).
$wgAbuseFilterIsCentral
false
שנה ערך משתנה זה ל"true" עבור הוויקי בכל מקום שמסנני השחתות גלובלית מאוכסנים (נתמך רק בגרסת הפיתוח הנסיונית האחרונה ביותר)
$wgAbuseFilterDisallowGlobalLocalBlocks
false
Disallow Centralised filters from taking actions that locally block, remove from groups, or revoke permissions.
$wgAbuseFilterBlockDuration
'indefinite'
משך זמן יצירת הבלוקים שיוצרו על ידי AbuseFilter
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterAnonBlockDuration
null
Duration of blocks made by AbuseFilter on users who are not logged in. The value of $wgAbuseFilterBlockDuration will be used if this is not set.
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterCustomActionsHandlers
[ ]
Callback functions for custom actions.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Default warning messages, per filter group
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Age used as cutoff when purging old IP log data. Defaults to 3 months. Used by maintenance script purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Number of action that determines when to reset profiling stats.
$wgAbuseFilterLogPrivateDetailsAccess
false
Whether accessing private information from a filter log entry is logged.
$wgAbuseFilterPrivateDetailsForceReason
false
Whether users are forced to provide a reason for accessing private information from a filter log entry.

Emergency throttling

AbuseFilter comes with a feature that automatically throttles (disable) filters that have been edited recently and match a certain theresold of the latest actions.

This is done to prevent harmful edits on the filters to block every user that performs an action on the wiki or similar.

The condition to disable the filter depend on those variables:

  • $wgAbuseFilterEmergencyDisableThreshold - Percent of matches over the total amount of actions in the observed period.
  • $wgAbuseFilterEmergencyDisableCount - Count of matches of the filter in the observed period.
  • $wgAbuseFilterEmergencyDisableAge - Age of the filter to take it into account. If the last edit of the filter is older than this number of seconds, the filter won't be throttled, unless it's already throttled.
  • $wgAbuseFilterProfileActionsCap - Maximum number of recent actions to count against the threshold. Note that each action increments a counter, and once this counter reaches this configured value, this counter and the number of recent actions that matches all filters are reset to 0.

Throttled filters can be identified in the list of filters (Special:AbuseFilter) with the state Enabled, throttled. Throttling happens silently, and there's no way to see when a filter got throttled.

When a filter gets throttled, it doesn't perform any dangerous action (the ones specified in $wgAbuseFilterRestrictions), and only "safe" actions are allowed. Throttled filters don't get enabled automatically. To disable the throttling, you need to edit the filter. Note that you need to actually change something from the filter: changing somethin from the filter's notes is sufficient.

Note that editing the filter updates its age, and can cause it to be disabled if it reaches again the conditions to be throttled in a short period since the last edit, leading to a unusable filter if your wiki has more abuse edits than legitimate ones. Filters can also get randomly throttled if the action count reaches $wgAbuseFilterProfileActionsCap, causing all filter matches count to reset to 0, and then someone repeatedly makes a filter to hit.

יצירה וניהול מסננים

ברגע שההרחבה מותקנת, ניתן ליצור/לבחון/לשנות ולמחוק מסננים שונים, וניתן לגשת לדוחות מדף ניהול ההרחבה Special:AbuseFilter.

ממשק-תכנה

AbuseFilter adds two API list modules, one for details of abuse filters ("abusefilters") and one for the abuse log, since it is separate from other MediaWiki logs ("abuselog"). It is not possible to create or modify abuse filters using the API.

list = abusefilters

List information about filters

Parameters
  • abfstartid - The filter id to start enumerating from
  • abfendid - The filter id to stop enumerating at
  • abfdir - The direction in which to enumerate (older, newer)
  • abfshow - Show only filters which meet these criteria (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit - The maximum number of filters to list
  • abfprop - Which properties to get (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

When filters are private, some of the properties specified with abfprop will be missing unless you have the appropriate user rights.

Examples

List non-private abuse filters

list = abuselog

List instances where actions triggered an abuse filter.

Parameters
  • aflstart - The timestamp to start enumerating from
  • aflend - The timestamp to stop enumerating at
  • afldir - The direction in which to enumerate (older, newer)
  • afluser - Show only entries where the action was attempted by a given user or IP address.
  • afltitle - Show only entries where the action involved a given page.
  • aflfilter - Show only entries that triggered a given filter ID
  • afllimit - The maximum number of entries to list
  • aflprop - Which properties to get (ids|user|title|action|result|timestamp|details)
Example

List instances where the abuse filter was triggered in response to actions from the user "SineBot"

Possible errors

  • Some users might experience that creating new filters or modifying old filters fail and the user just gets redirected to the original page. If the Wiki is using SSL certificates, this error could possibly be because of the $wgServer value, which might be using "http://" instead of "https://". An indication of this error will be, the browser giving https warning for Special:AbuseFilter pages. (Topic:T23dyyih0ofjada5)

ראה גם