ส่วนขยาย:AbuseFilter
Release status: stable |
|
|---|---|
| Implementation | User activity, Special page, API |
| Description | อนุญาตให้วางข้อจำกัดตามพฤติกรรมเฉพาะในกิจกรรมวิกิ |
| Author(s) |
|
| Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
| Database changes | Yes |
| Composer | mediawiki/abuse-filter |
|
|
|
|
|
|
|
|
| Licence | GNU General Public License 2.0 or later |
| Download | |
| Translate the AbuseFilter extension if it is available at translatewiki.net | |
| Issues | Open tasks · Report a bug |
ส่วนขยาย AbuseFilter ช่วยให้ผู้ใช้ที่ได้รับสิทธิ์สามารถตั้งค่าการดำเนินการเฉพาะที่จะดำเนินการเมื่อการกระทำของผู้ใช้ เช่น การแก้ไข ตรงกับเกณฑ์ที่กำหนด
ตัวอย่างเช่น สามารถสร้างตัวกรองเพื่อป้องกันไม่ให้ผู้ใช้ที่ไม่ได้ลงทะเบียนเพิ่มลิงก์ภายนอก หรือเพื่อบล็อกผู้ใช้ที่ลบอักขระมากกว่า 2,000 ตัว
การติดตั้ง
- ดาวน์โหลดและวางไฟล์ลงในไดเร็กทอรีที่ชื่อ
AbuseFilterในโฟลเดอร์extensions/ของคุณ
Developers and code contributors should install the extension from Git instead, using:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter
- เฉพาะเมื่อติดตั้งจาก Git รัน Composer เพื่อติดตั้ง PHP dependencies โดยการสร้าง
composer install --no-devในไดเรคทอรีของส่วนขยาย (ดูที่ T173141 สำหรับการขยายความ) - เพิ่มโค้ดต่อไปนี้ไว้ที่ด้านล่างของ LocalSettings.php ของคุณ:
wfLoadExtension( 'AbuseFilter' );
- รันสคริปต์อัปเดต เพื่อสร้างตารางฐานข้อมูลที่จำเป็นสำหรับส่วนขยายนี้
- กำหนดค่าตามต้องการ
สำเร็จ – ตรวจสอบที่ Special:Versionบนวิกิของคุณเพื่อตรวจการติดตั้งส่วนขยาย
ดังนั้น หลังจากการติดตั้งจาก Git ให้เปลี่ยนเป็นไดเร็กทอรีที่มีส่วนขยาย เช่น "../extensions/AbuseFilter/" และรัน composer install --no-dev หรือเมื่ออัปเดต: composer update --no-dev
หรือควรเพิ่มบรรทัด "extensions/AbuseFilter/composer.json" ลงในไฟล์ "composer.local.json" ในไดเร็กทอรีรากของวิกิของคุณเช่น
{
"extra": {
"merge-plugin": {
"include": [
"extensions/AbuseFilter/composer.json"
]
}
}
}
การกำหนดค่า
สิทธิผู้ใช้
เมื่อคุณติดตั้งส่วนขยายแล้ว คุณจะต้องตั้งค่าสิทธิ์ผู้ใช้ใน "LocalSettings.php"
| สิทธิ | คำอธิบาย | Notes | User groups that have this right by default | Versions |
|---|---|---|---|---|
| abusefilter-modify | สร้างหรือดัดแปรตัวกรองการละเมิด | Requires the abusefilter-view right
|
sysop | 1.19+ |
| abusefilter-view | ดูตัวกรองการละเมิดกฎ | * | 1.19+ | |
| abusefilter-log | ดูปูมการละเมิดกฎ | * | 1.19+ | |
| abusefilter-log-detail | ดูหน่วยรายการบันทึกการละเมิดกฎแบบละเอียด | Requires the abusefilter-log right
|
sysop | 1.19+ |
| abusefilter-privatedetails | ดูข้อมูลส่วนตัวในรายการบันทึกการละเมิดกฎ | Prior to 1.34 this right was named abusefilter-private - Requires the abusefilter-log-detail right
|
— | 1.19+ |
| abusefilter-modify-restricted | ปรับเปลี่ยนตัวกรองการละเมิดกฎด้วยการกระทำที่จำกัด | Requires the abusefilter-modify right
|
sysop | 1.19+ |
| abusefilter-revert | แปลงกลับการเปลี่ยนแปลงทั้งหมดโดยตัวกรองการละเมิดกฎที่กำหนด | sysop | 1.19+ | |
| abusefilter-view-private | ดูตัวกรองการละเมิดกฎที่ทำเครื่องหมายเป็นส่วนตัว | Requires the abusefilter-view right (not needed if the group already has the abusefilter-modify right)
|
sysop | 1.19+ |
| abusefilter-hide-log | ซ่อนหน่วยในรายการบันทึกการละเมิดกฎ | Requires the abusefilter-log right
|
suppress | 1.19+ |
| abusefilter-hidden-log | ดูหน่วยรายการบันทึกการละเมิดกฎที่ถูกซ่อน | Requires the abusefilter-log right
|
suppress | 1.19+ |
| abusefilter-log-private | ดูหน่วยรายการบันทึกตัวกรองการละเมิดกฎที่ทำเครื่องหมายเป็นส่วนตัว | Requires the abusefilter-log right (not needed if the group already has the abusefilter-modify or abusefilter-view-private rights)
|
sysop | 1.20+ |
| abusefilter-modify-global | สร้างหรือปรับเปลี่ยนตัวกรองการละเมิดกฎข้ามโครงการ | Requires the abusefilter-modify right
|
— | 1.21+ |
| abusefilter-privatedetails-log | ดูรายการบันทึกการเข้าถึงรายละเอียดส่วนตัวของตัวกรองการละเมิดกฎ | Prior to 1.34 this right was named abusefilter-private-log
|
— | 1.31+ |
| abusefilter-modify-blocked-external-domains | สร้างหรือแก้ไขโดเมนภายนอกที่จะบล็อกไม่ให้เชื่อมโยงมา | sysop | 1.41+ | |
| abusefilter-bypass-blocked-external-domains | เลี่ยงผ่านโดเมนภายนอกที่ถูกบล็อก | Requires the edit right
|
bot | 1.41+ |
| abusefilter-access-protected-vars | View and create filters that use protected variables | sysop | 1.43+ | |
| abusefilter-protected-vars-log | View logs related to accessing protected variable values | sysop | 1.43+ |
ตัวอย่างเช่น การกำหนดค่าตัวอย่างต่อไปนี้จะอนุญาตให้ sysops ทำทุกอย่างที่ต้องการด้วย AbuseFilter และทุกคนสามารถดูบันทึกและดูการตั้งค่าตัวกรองสาธารณะ:
$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-privatedetails'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
$wgGroupPermissions['sysop']['abusefilter-access-protected-vars'] = true;
$wgGroupPermissions['sysop']['abusefilter-protected-vars-log'] = true;
abusefilter-access-protected-vars permission. Logs pertaining to these filters can only be viewed by users with the abusefilter-protected-vars-log permission. For more information, see Rules format.suppressrevision permission. These filters can only be viewed and modified by users with the viewsuppressed permission, and all abuse logs they create are treated as automatically suppressed.Parameters
| ชื่อตัวแปร | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
$wgAbuseFilterActions
|
[
'throttle' => true,
'warn' => true,
'disallow' => true,
'blockautopromote' => true,
'block' => true,
'rangeblock' => false,
'degroup' => false,
'tag' => true
]
|
การดำเนินการที่เป็นไปได้ที่สามารถทำได้โดยตัวกรองการละเมิด เมื่อเพิ่มการกระทำใหม่ ให้ตรวจสอบว่ามีการจำกัดไว้ที่ $wgAbuseFilterActionRestrictions หรือไม่ และหากเป็นเช่นนั้น อย่าลืมเพิ่มสิทธิ์ที่ abusefilter-modify-restricted ให้กับกลุ่มผู้ใช้ที่เหมาะสม
|
$wgAbuseFilterConditionLimit
|
1000
|
จำนวนสูงสุดของ 'เงื่อนไข' ที่สามารถใช้ได้ในแต่ละครั้งที่เรียกใช้ตัวกรองกับการเปลี่ยนแปลง (ตัวกรองที่ซับซ้อนมากขึ้นจำเป็นต้องมี 'เงื่อนไข' มากกว่า) |
$wgAbuseFilterValidGroups
|
[
'default'
]
|
รายการตัวกรอง "กลุ่ม" สามารถแบ่งออกเป็น โดยค่าเริ่มต้นจะมีเพียงกลุ่มเดียวเท่านั้น ส่วนขยายอื่นๆ อาจเพิ่มกลุ่มอื่น ๆ |
$wgAbuseFilterEmergencyDisableThreshold
|
[
'default' => 0.05
]
|
ปิดการใช้งานตัวกรองหากตรงกับการแก้ไขมากกว่า 2 ครั้ง ซึ่งคิดเป็นมากกว่า 5 % ของการดำเนินการที่ถูกตรวจสอบกับกลุ่มของตัวกรองในช่วงเวลา "สังเกต" (สูงสุดหนึ่งวัน) เว้นแต่ว่าตัวกรองมีการเปลี่ยนแปลงในช่วง 86400 วินาทีที่ผ่านมา (วันหนึ่ง) ดู การควบคุมปริมาณฉุกเฉิน |
$wgAbuseFilterEmergencyDisableCount
|
[
'default' => 2
]
| |
$wgAbuseFilterEmergencyDisableAge
|
[
'default' => 86400
]
| |
$wgAbuseFilterActionRestrictions
|
[
"throttle" => false,
"warn" => false,
"disallow" => false,
"blockautopromote" => true,
"block" => true,
"rangeblock" => true,
"degroup" => true,
"tag" => false
]
|
ผู้ใช้จะต้องมีสิทธิ์ผู้ใช้ "abusefilter-modify-restricted" เช่นเดียวกับ "abusefilter-modify" เพื่อสร้างหรือแก้ไขตัวกรองที่ดำเนินการเหล่านี้ |
$wgAbuseFilterNotifications
|
false
|
อนุญาตให้กำหนดค่าส่วนขยายเพื่อส่งการแจ้งเตือน Hit ไปที่ Special:RecentChanges หรือ UDP ตัวเลือกที่มี: rc, udp, rcandudp
หากต้องการส่งการเปลี่ยนแปลงตัวกรองการละเมิดเป็น Special:RecentChanges ให้ใช้
$wgExtensionFunctions[] = static function () { global $wgLogRestrictions; unset( $wgLogRestrictions['abusefilter'] ); }; |
$wgAbuseFilterNotificationsPrivate
|
false
|
เปิดใช้งานการแจ้งเตือนสำหรับตัวกรองส่วนตัว |
$wgAbuseFilterCentralDB
|
null
|
MW 1.41+ ชื่อของฐานข้อมูลที่จะจัดเก็บตัวกรองการละเมิดทั่วโลก (รองรับเฉพาะในเวอร์ชันการพัฒนาล่าสุดเท่านั้น) ต้องติดตั้ง CentralAuth มิฉะนั้นตัวกรองส่วนกลางจะใช้งานไม่ได้ใน wikifarm |
$wgAbuseFilterIsCentral
|
false
|
MW 1.41+ ตั้งค่าตัวแปรนี้เป็นจริงสำหรับวิกิที่จัดเก็บ AbuseFilters ส่วนกลางไว้ (รองรับเฉพาะในเวอร์ชันการพัฒนาล่าสุดเท่านั้น) ต้องติดตั้ง CentralAuth มิฉะนั้นตัวกรองส่วนกลางจะใช้งานไม่ได้ใน wikifarm |
$wgAbuseFilterLocallyDisabledGlobalActions
|
[
"throttle" => false,
"warn" => false,
"disallow" => false,
"blockautopromote" => false,
"block" => false,
"rangeblock" => false,
"degroup" => false,
"tag" => false
]
|
ไม่อนุญาตให้ตัวกรองแบบรวมศูนย์ดำเนินการตามที่ตั้งค่าเป็นจริงในตัวแปรนี้ |
$wgAbuseFilterBlockDuration
|
'indefinite'
|
ระยะเวลาของการบล็อกที่สร้างโดย AbuseFilter
ตั้งแต่ 1.31.0-wmf.25 ระยะเวลาบล็อกอาจถูกระบุสำหรับทุกๆ ตัวกรอง และจะแทนที่ตัวแปรนี้ ตัวแปรนี้ใช้เมื่อเปิดใช้งานบล็อกเพื่อเลือกระยะเวลาเริ่มต้นล่วงหน้าเท่านั้น
|
$wgAbuseFilterAnonBlockDuration
|
null
|
ระยะเวลาของการบล็อกที่สร้างโดย AbuseFilter สำหรับผู้ใช้ที่ไม่ได้เข้าสู่ระบบ ระบบจะใช้ค่าของ $wgAbuseFilterBlockDuration หากไม่ได้ตั้งค่าไว้
ตั้งแต่ 1.31.0-wmf.25 ระยะเวลาบล็อกอาจถูกระบุสำหรับทุกๆ ตัวกรอง และจะแทนที่ตัวแปรนี้ ตัวแปรนี้ใช้เมื่อเปิดใช้งานบล็อกเพื่อเลือกระยะเวลาเริ่มต้นล่วงหน้าเท่านั้น
|
$wgAbuseFilterBlockAutopromoteDuration
|
5
|
ระยะเวลาเป็นวันที่การโปรโมตอัตโนมัติของผู้ใช้ถูกตัวกรองบล็อกไว้ |
$wgAbuseFilterDefaultWarningMessage
|
[
'default' => 'abusefilter-warning'
]
|
ข้อความเตือนเริ่มต้น ตามกลุ่มตัวกรอง |
$wgAbuseFilterDefaultDisallowMessage
|
[
'default' => 'abusefilter-disallowed'
]
|
ข้อความไม่อนุญาตเริ่มต้น ตามกลุ่มตัวกรอง |
$wgAbuseFilterLogIP
|
true
|
ว่าจะรวม IP ใน Abus_filter_log หรือไม่ |
$wgAbuseFilterLogIPMaxAge
|
3 * 30 * 24 * 3600
|
อายุที่ใช้เป็นจุดตัดเมื่อล้างข้อมูลบันทึก IP เก่า ค่าเริ่มต้นคือ 3 เดือน ใช้โดยสคริปต์การบำรุงรักษาล้าง OldLogIPData.php |
$wgAbuseFilterProfileActionsCap
|
10000
|
จำนวนของการดำเนินการที่กำหนดว่าจะรีเซ็ตสถิติการทำโปรไฟล์เมื่อใด |
$wgAbuseFilterLogPrivateDetailsAccess
|
false
|
การเข้าถึงข้อมูลส่วนตัวจากรายการบันทึกตัวกรองจะถูกบันทึกไว้หรือไม่ |
$wgAbuseFilterPrivateDetailsForceReason
|
false
|
ไม่ว่าผู้ใช้จะถูกบังคับให้ระบุเหตุผลในการเข้าถึงข้อมูลส่วนตัวจากรายการบันทึกตัวกรองหรือไม่ |
$wgAbuseFilterSlowFilterRuntimeLimit
|
500
|
รันไทม์เป็นมิลลิวินาทีก่อนที่ตัวกรองจะถือว่าช้า |
$wgAbuseFilterRangeBlockSize
|
[
'IPv4' => '16',
'IPv6' => '19',
]
|
ขนาดของช่วงที่ถูกบล็อกโดยการกระทำ 'rangeblock' |
$wgAbuseFilterProtectedVariables
|
[ "user_unnamed_ip" ]
|
Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.
|
การควบคุมปริมาณฉุกเฉิน
AbuseFilter มาพร้อมกับคุณสมบัติที่จะควบคุม (ปิดการใช้งาน) ตัวกรองที่ได้รับการแก้ไขเมื่อเร็ว ๆ นี้และตรงกับเกณฑ์ที่กำหนดของการดำเนินการล่าสุดโดยอัตโนมัติ
สิ่งนี้ทำเพื่อป้องกันการแก้ไขตัวกรองที่เป็นอันตรายเพื่อบล็อกผู้ใช้ทุกคนที่ดำเนินการบนวิกิหรือสิ่งที่คล้ายกัน
เงื่อนไขในการปิดใช้งานตัวกรองจะขึ้นอยู่กับตัวแปรเหล่านั้น:
$wgAbuseFilterEmergencyDisableThreshold– เปอร์เซ็นต์ของการจับคู่ต่อจำนวนการกระทำทั้งหมดในช่วงเวลาที่สังเกต$wgAbuseFilterEmergencyDisableCount– จำนวนรายการที่ตรงกันของตัวกรองในช่วงเวลาที่สังเกต$wgAbuseFilterEmergencyDisableAge– อายุของตัวกรองที่ต้องคำนึงถึง หากการแก้ไขตัวกรองครั้งล่าสุดเก่ากว่าจำนวนวินาทีนี้ ตัวกรองจะไม่ถูกควบคุม เว้นแต่จะถูกควบคุมแล้ว
ตัวกรองที่ควบคุมปริมาณสามารถระบุได้ในรายการตัวกรอง (พิเศษ: AbuseFilter) โดยมีสถานะ เปิดใช้งาน, อัตราการตรงกันสูง การควบคุมปริมาณจะเกิดขึ้นอย่างเงียบ ๆ และไม่มีทางรู้ได้ว่าตัวกรองถูกควบคุมเมื่อใด
เมื่อตัวกรองถูกควบคุมปริมาณ ตัวกรองจะไม่ดำเนินการที่เป็นอันตรายใดๆ (โดยปกติการดำเนินการจะจำกัดเฉพาะสิทธิ์พิเศษ เช่น การบล็อกผู้ใช้ หรือการลบตัวกรองออกจากกลุ่ม ซึ่งควบคุมโดย $wgAbuseFilterActionRestrictions) และอนุญาตเฉพาะการดำเนินการที่ "ปลอดภัย" เท่านั้น (ตัวกรองที่สามารถ ตักเตือนหรือระงับการดำเนินการต่อไป) ตัวกรองที่ถูกควบคุมไม่ได้เปิดใช้งานโดยอัตโนมัติ หากต้องการปิดใช้งานการควบคุมปริมาณ คุณต้องแก้ไขตัวกรอง โปรดทราบว่าคุณจำเป็นต้องเปลี่ยนแปลงบางอย่างจากตัวกรอง: การเปลี่ยนแปลงบางอย่างจากบันทึกของตัวกรองก็เพียงพอแล้ว
โปรดทราบว่าการแก้ไขตัวกรองจะอัปเดตอายุของตัวกรอง และอาจทำให้ปิดใช้งานได้หากถึงเงื่อนไขที่ต้องควบคุมอีกครั้งในช่วงเวลาสั้นๆ นับตั้งแต่การแก้ไขครั้งล่าสุด ซึ่งนำไปสู่ตัวกรองที่ใช้งานไม่ได้หากวิกิของคุณมีการแก้ไขที่ไม่เหมาะสมมากกว่าการแก้ไขที่ถูกต้อง
การสร้างและการจัดการตัวกรอง
เมื่อติดตั้งส่วนขยายแล้ว คุณจะสามารถสร้าง/ทดสอบ/เปลี่ยนแปลง/ลบตัวกรองได้ และสามารถเข้าถึงบันทึกได้จากหน้าการจัดการตัวกรองการละเมิด Special:AbuseFilter
- Rules format – * รูปแบบกฎ - พื้นฐานของวิธีเขียนตัวกรอง
- [[Special:MyLanguage/Extension:AbuseFilter/Actions|* การกระทำ]]
- Access flags
- [[Special:MyLanguage/Extension:AbuseFilter/Global|* กฎสากล]]
- [[Special:MyLanguage/Extension:AbuseFilter/Conditions|* คำแนะนำในการเพิ่มประสิทธิภาพการใช้งานขีดจำกัดเงื่อนไข]]
- หากต้องการนำเข้าตัวกรองจาก Wikipedia: เมื่อคุณติดตั้งส่วนขยายแล้ว ให้ไปที่ w:Special:AbuseFilter เลือกตัวกรอง (พูด w:Special:AbuseFilter/3) จากนั้นคลิก "ส่งออกตัวกรองนี้ ไปยังวิกิอื่น", คัดลอกข้อความ, ไปที่ "พิเศษ: AbuseFilter/import" บนวิกิของคุณ, วางข้อความ
- m:Small wiki toolkits/Starter kit/AbuseFilter – คำแนะนำสำหรับชุมชนวิกิขนาดเล็กบนเมตาวิกิ
API
AbuseFilter เพิ่มโมดูลรายการ API สองโมดูล โมดูลหนึ่งสำหรับรายละเอียดของตัวกรองการละเมิด ("abusefilters") และอีกโมดูลสำหรับบันทึกการละเมิด เนื่องจากแยกจากบันทึก MediaWiki อื่นๆ ("abuselog") ไม่สามารถสร้างหรือแก้ไขตัวกรองการละเมิดโดยใช้ API ได้
list=abusefilters (abf)
รายการข้อมูลเกี่ยวกับตัวกรอง
- พารามิเตอร์
abfstartid- รหัสตัวกรองที่จะเริ่มต้นแจกแจงabfendid- รหัสตัวกรองที่จะหยุดแจงนับabfdir- ทิศทางในการแจกแจง (เก่ากว่า ใหม่กว่า) older, newerabfshow- แสดงเฉพาะตัวกรองที่ตรงตามเกณฑ์เหล่านี้ (enabled|!enabled|deleted|!deleted|private|!private) enabled|!enabled|deleted|!deleted|private|!private|protected|!protectedabflimit- จำนวนตัวกรองสูงสุดที่จะแสดงรายการabfprop- คุณสมบัติใดที่จะได้รับ (id|คำอธิบาย|รูปแบบ|การกระทำ|การเข้าชม|ความคิดเห็น|lasteditor|เวลาแก้ไขล่าสุด|สถานะ|ส่วนตัว) id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private|protected|suppressed
เมื่อตัวกรองเป็นแบบส่วนตัว คุณสมบัติบางอย่างที่ระบุด้วย abfprop จะหายไป เว้นแต่คุณจะมีสิทธิ์ผู้ใช้ที่เหมาะสม
- ตัวอย่าง
| ผล |
|---|
{
"batchcomplete": "",
"continue": {
"abfstartid": 18,
"continue": "-||"
},
"query": {
"abusefilters": [
{
"id": 1,
"hits": 41430
},
{
"id": 3,
"hits": 957485
},
{
"id": 5,
"hits": 5931
},
{
"id": 6,
"hits": 19
},
{
"id": 8,
"hits": 7
},
{
"id": 9,
"hits": 41354
},
{
"id": 11,
"hits": 132971
},
{
"id": 12,
"hits": 139693
},
{
"id": 14,
"hits": 63
},
{
"id": 15,
"hits": 15
}
]
}
}
|
list=abuselog (afl)
แสดงรายการอินสแตนซ์ที่การดำเนินการทำให้เกิดตัวกรองการละเมิด
- พารามิเตอร์
afllogid- A single integer log ID to list.aflstart- การประทับเวลาเพื่อเริ่มนับaflend- การประทับเวลาที่จะหยุดแจงนับที่afldir- ทิศทางในการแจกแจง (เก่ากว่า ใหม่กว่า)afluser- แสดงเฉพาะรายการที่ผู้ใช้หรือที่อยู่ IP พยายามดำเนินการเท่านั้นafltitle- แสดงเฉพาะรายการที่การดำเนินการเกี่ยวข้องกับเพจที่กำหนดaflfilter- แสดงเฉพาะรายการที่ทริกเกอร์รหัสตัวกรองที่กำหนดafllimit- จำนวนรายการสูงสุดที่จะแสดงรายการaflprop- คุณสมบัติใดที่จะได้รับ: (ids|filter|user|title|action|details|result|timestamp|hidden|revid|wiki)aflprop=wikiis recognized only on central wikis.
- ตัวอย่าง
| ผล |
|---|
{
"batchcomplete": "",
"continue": {
"aflstart": "2018-03-06T02:34:18Z",
"continue": "-||"
},
"query": {
"abuselog": [
{
"id": 27219261,
"filter_id": "1073"
},
{
"id": 26938051,
"filter_id": ""
},
{
"id": 23388942,
"filter_id": "1"
},
{
"id": 22044912,
"filter_id": ""
},
{
"id": 22032235,
"filter_id": ""
},
{
"id": 22032196,
"filter_id": ""
},
{
"id": 21983882,
"filter_id": ""
},
{
"id": 20594818,
"filter_id": "904"
},
{
"id": 20593489,
"filter_id": "904"
},
{
"id": 20590442,
"filter_id": "904"
}
]
}
}
|
ข้อบกพร่องที่อาจเกิด
- ผู้ใช้บางรายอาจพบว่าการสร้างตัวกรองใหม่หรือการแก้ไขตัวกรองเก่าล้มเหลว และผู้ใช้เพิ่งถูกเปลี่ยนเส้นทางไปยังหน้าเดิม หาก Wiki ใช้ใบรับรอง SSL ข้อผิดพลาดนี้อาจเป็นเพราะค่า
$wgServerซึ่งอาจใช้ "http://" แทน "https://" ข้อบ่งชี้ของข้อผิดพลาดนี้คือเบราว์เซอร์ให้คำเตือน https สำหรับ Special:AbuseFilter เพจ ($2) (Project:Support desk/Flow/2016/04#h-response?-2016-04-14T15:54:00.000Z)
บูรณาการกับส่วนขยายอื่น ๆ
คุณสามารถรวม AbuseFilter เข้ากับส่วนขยายอื่น ๆ ได้หลายวิธี
การเพิ่มตัวแปรสำหรับการกรอง
คุณสามารถเพิ่มตัวแปรใหม่เพื่อใช้ในตัวกรองการละเมิดได้ รายการตัวอย่าง {{$1|is available}} หากต้องการทำเช่นนั้น คุณควร:
A list of examples is available. To do that, you should:
- เพิ่มตัวจัดการสำหรับตะขอ AbuseFilter-builder ในการเพิ่มตัวแปร คุณควรใช้
$builder['vars']['variable_name'] = 'i18n-key';โดยที่variable_nameคือชื่อของตัวแปร และi18n-keyคือส่วนของคีย์ i18n คีย์เต็มจะเป็นabusefilter-edit-builder-vars-{$your_key} - เพิ่มข้อความ i18n ที่คุณเลือกที่จุดก่อนหน้า
- เลือกตัวจัดการ hook ที่จะคำนวณตัวแปร คุณสามารถ: ขึ้นอยู่กับกรณีการใช้งานของคุณ
- ใช้ตะขอ AbuseFilter-generateTitleVars นี่เป็นแนวคิดเฉพาะสำหรับตัวแปรที่เกี่ยวข้องกับหน้า
- ใช้ตะขอ AbuseFilter-generateUserVars นี่เป็นแนวคิดเฉพาะสำหรับตัวแปรที่เกี่ยวข้องกับผู้ใช้
- ใช้ตะขอ AbuseFilter-generateGenericVars นี่สำหรับตัวแปรที่ไม่ได้ผูกกับเพจหรือผู้ใช้เฉพาะ
- ใช้ตะขอ AbuseFilterAlterVariables สิ่งนี้มีความยืดหยุ่นมากกว่า hooks อื่นๆ เล็กน้อย แต่ก็มีข้อเสีย: ตัวแปรของคุณจะไม่สามารถใช้งานได้เมื่อตรวจสอบรายการการเปลี่ยนแปลงล่าสุดที่ผ่านมา หากคุณต้องการใช้คุณลักษณะนั้น (และแนะนำให้ทำเช่นนั้น) คุณควรใช้หนึ่งใน hooks ที่แสดงไว้ด้านบน และใช้พารามิเตอร์ที่สาม (
$RCRow)
- ภายใน hook handler มีสองวิธีในการเพิ่มตัวแปร:
- วิธี "โดยตรง" คือการเรียก
$vars->setVar( 'var_name', var_value );วิธีนี้เหมาะอย่างยิ่งเมื่อคำนวณค่าได้ง่ายและรวดเร็วเท่านั้น โดยค่าดังกล่าวจะถูกคำนวณแม้ว่าจะไม่มีตัวกรองที่ใช้งานอยู่ก็ตาม - วิธี "ขี้เกียจ" กำลังเรียก
$vars->setLazyLoadVar( 'var_name', 'method_name', $params );ในที่นี้ "method_name" คือตัวระบุ (ไม่ซ้ำกัน) ที่จะใช้ในการคำนวณตัวแปร (ขอแนะนำให้ใส่ชื่อส่วนขยายนำหน้าด้วย) หากต้องการลงทะเบียนเมธอด คุณควรเพิ่มตัวจัดการสำหรับ AbuseFilter-computeVariable hook ในนั้น คุณควรตรวจสอบว่า $method ที่ส่งผ่านตรงกับ 'method_name' ของคุณหรือไม่ และหากเป็นเช่นนั้น ให้คำนวณตัวแปร สุดท้าย $params คืออาร์เรย์ของพารามิเตอร์ที่คุณต้องใช้ในการคำนวณตัวแปร สิ่งเหล่านี้จะถูกส่งผ่านไปยังตัวจัดการ hook computeVariable สำหรับตัวอย่างนี้ คุณสามารถตรวจสอบglobal_user_groupsของ CentralAuth
- วิธี "โดยตรง" คือการเรียก
การเพิ่มการกระทำที่กำหนดเอง
คุณสามารถเพิ่มตัวจัดการการดำเนินการแบบกำหนดเองได้ เพื่อให้แต่ละตัวกรองสามารถดำเนินการเพิ่มเติมได้ ในการทำเช่นนั้น คุณต้องเลือกชื่อสำหรับการกระทำ ('my-action' จากนี้ไป) จากนั้น:
- สร้างคลาสชื่อ เช่น MyAction ซึ่งควรขยาย \MediaWiki\Extension\AbuseFilter\Consequence ซึ่งสามารถใช้ HookAborterConsequence หรือ ConsequencesDisablerConsequence ได้
- เพิ่มสมาชิกให้กับตะขอ AbuseFilterCustomActions; ผู้สมัครสมาชิกควรจัดให้มีการโทรกลับตามที่ระบุไว้ในเอกสารประกอบของ hook ซึ่งจะส่งคืนอินสแตนซ์ของคลาสที่สร้างขึ้นด้านบน เช่น:
class MyAction extends \MediaWiki\Extension\AbuseFilter\Consequence {
public function run() {
throw new \Exception( 'Write me' );
}
}
public function onAbuseFilterCustomActions( &$actions ) {
$actions[] = function ( \MediaWiki\Extension\AbuseFilter\Consequence\Parameters $params, array $rawParams ) : MyConsequence {
return new MyAction( $params, $rawParams );
};
}
จากนั้นคุณควรเพิ่มข้อความ i18n ต่อไปนี้ คุณสามารถแทนที่ 'my_action' ด้วยเช่น 'block' เพื่อดูว่าข้อความมีไว้เพื่ออะไร:
'abusefilter-edit-action-${my_action}''abusefilter-action-${my_action}'
การเพิ่มกลุ่มกฎ
คุณยังสามารถเพิ่มกลุ่มกฎเพิ่มเติม ซึ่งสามารถใช้เพื่อจัดกลุ่มตัวกรองการละเมิดที่มีอยู่ได้ โปรดทราบว่าในขณะนี้ แต่ละตัวกรองสามารถอยู่ในกลุ่มเดียวเท่านั้น (T116642) Currently, the only known consumer of this feature is Extension:StructuredDiscussions. หากต้องการทำเช่นนั้น คุณควร:
- เพิ่มชื่อกลุ่มต่อท้าย
$wgAbuseFilterValidGroups - เพิ่มโค้ดเพื่อเรียกใช้ตัวกรองกับกลุ่มของคุณ โปรดทราบว่า AbuseFilter จะไม่ทำอย่างนั้นด้วยตัวเอง เพื่อทำเช่นนั้น คุณควรสร้างวัตถุ
AbuseFilterRunnerโดยส่งผ่านชื่อกลุ่มของคุณ
ดูเพิ่ม
- Help:BlockedExternalDomains
- วิกิ WMF หลายแห่งที่เปิดใช้งาน (และด้วยการกำหนดค่าใด)
| ส่วนขยายมีเดียวิกินี้ถูกใช้ในหนึ่งหรือหลายที่ในโครงการของวิกิมีเดีย นั่นควรจะหมายถึงว่าส่วนขยายนี้มีความเสถียรสูงและทำงานได้ดีพอในเว็ปไซต์ที่มีการเยี่ยมชมมาก ลองดูที่ชื่อของส่วนขยายนี้ในไฟล์การตั้งค่า CommonSettings.php และ InitialiseSettings.php เพื่อดูการติดตั้งว่าอยู่ที่ใด รายการฉบับสมบูรณ์ของส่วนขยายที่ติดตั้งแล้วได้ที่หน้า Special:Version ของวิกิ |
| This extension is included in the following wiki farms/hosts and/or packages: |
- Stable extensions/th
- User activity extensions/th
- Special page extensions/th
- API extensions/th
- Extensions supporting Composer/th
- ChangeTagsListActive extensions/th
- CheckUserInsertChangesRow extensions/th
- CheckUserInsertLogEventRow extensions/th
- CheckUserInsertPrivateEventRow extensions/th
- ContributionsToolLinks extensions/th
- EditFilterMergedContent extensions/th
- GetAutoPromoteGroups extensions/th
- HistoryPageToolLinks extensions/th
- HtmlPageLinkRendererEnd extensions/th
- JsonValidateSave extensions/th
- ListDefinedTags extensions/th
- LoadExtensionSchemaUpdates extensions/th
- PageDelete extensions/th
- ParserOutputStashForEdit extensions/th
- RecentChange save extensions/th
- ResourceLoaderRegisterModules extensions/th
- TitleMove extensions/th
- UndeletePageToolLinks extensions/th
- UploadStashFile extensions/th
- UploadVerifyUpload extensions/th
- UserMergeAccountFields extensions/th
- GetUserPermissionsErrors extensions/th
- GPL licensed extensions/th
- Extensions in Wikimedia version control/th
- All extensions/th
- Extensions bundled with MediaWiki 1.38/th
- Extensions requiring Composer with git/th
- Extensions used on Wikimedia/th
- Extensions included in Canasta/th
- Extensions available as Debian packages/th
- Extensions included in Fandom/th
- Extensions included in Miraheze/th
- Extensions included in MyWikis/th
- Extensions included in ProWiki/th
- Extensions included in ShoutWiki/th
- Extensions included in Telepedia/th
- Extensions included in Weird Gloop/th
- Extensions included in wiki.gg/th
- Spam management extensions/th
