Extension:AbuseFilter/th

ส่วนขยาย AbuseFilter ช่วยให้ผู้ใช้ที่ได้รับสิทธิ์สามารถตั้งค่าการดำเนินการเฉพาะที่จะดำเนินการเมื่อการกระทำของผู้ใช้ เช่น การแก้ไข ตรงกับเกณฑ์ที่กำหนด

ตัวอย่างเช่น สามารถสร้างตัวกรองเพื่อป้องกันไม่ให้ผู้ใช้ที่ไม่ได้ลงทะเบียนเพิ่มลิงก์ภายนอก หรือเพื่อบล็อกผู้ใช้ที่ลบอักขระมากกว่า 2,000 ตัว

การกำหนดค่า


สิทธิผู้ใช้
เมื่อคุณติดตั้งส่วนขยายแล้ว คุณจะต้องตั้งค่าสิทธิ์ผู้ใช้ใน "LocalSettings.php"

ตัวอย่างเช่น การกำหนดค่าตัวอย่างต่อไปนี้จะอนุญาตให้ sysops ทำทุกอย่างที่ต้องการด้วย AbuseFilter และทุกคนสามารถดูบันทึกและดูการตั้งค่าตัวกรองสาธารณะ:

Parameters


การควบคุมปริมาณฉุกเฉิน
AbuseFilter มาพร้อมกับคุณสมบัติที่จะควบคุม (ปิดการใช้งาน) ตัวกรองที่ได้รับการแก้ไขเมื่อเร็ว ๆ นี้และตรงกับเกณฑ์ที่กำหนดของการดำเนินการล่าสุดโดยอัตโนมัติ

สิ่งนี้ทำเพื่อป้องกันการแก้ไขตัวกรองที่เป็นอันตรายเพื่อบล็อกผู้ใช้ทุกคนที่ดำเนินการบนวิกิหรือสิ่งที่คล้ายกัน

เงื่อนไขในการปิดใช้งานตัวกรองจะขึ้นอยู่กับตัวแปรเหล่านั้น:
 * - เปอร์เซ็นต์ของการจับคู่ต่อจำนวนการกระทำทั้งหมดในช่วงเวลาที่สังเกต
 * - จำนวนรายการที่ตรงกันของตัวกรองในช่วงเวลาที่สังเกต
 * - อายุของตัวกรองที่ต้องคำนึงถึง หากการแก้ไขตัวกรองครั้งล่าสุดเก่ากว่าจำนวนวินาทีนี้ ตัวกรองจะไม่ถูกควบคุม เว้นแต่จะถูกควบคุมแล้ว
 * - จำนวนการดำเนินการล่าสุดสูงสุดที่จะนับตามเกณฑ์ โปรดทราบว่าแต่ละการกระทำจะเพิ่มตัวนับ และเมื่อตัวนับนี้ถึงค่าที่กำหนดไว้ ตัวนับนี้และจำนวนการกระทำล่าสุดที่ตรงกับตัวกรองทั้งหมดจะถูกรีเซ็ตเป็น 0

ตัวกรองที่ควบคุมปริมาณสามารถระบุได้ในรายการตัวกรอง (พิเศษ: AbuseFilter) โดยมีสถานะ , การควบคุมปริมาณจะเกิดขึ้นอย่างเงียบ ๆ และไม่มีทางรู้ได้ว่าตัวกรองถูกควบคุมเมื่อใด

เมื่อตัวกรองถูกควบคุมปริมาณ ตัวกรองจะไม่ดำเนินการที่เป็นอันตรายใดๆ (โดยปกติการดำเนินการจะจำกัดเฉพาะสิทธิ์พิเศษ เช่น การบล็อกผู้ใช้ หรือการลบตัวกรองออกจากกลุ่ม ซึ่งควบคุมโดย $wgAbuseFilterActionRestrictions) และอนุญาตเฉพาะการดำเนินการที่ "ปลอดภัย" เท่านั้น (ตัวกรองที่สามารถ ตักเตือนหรือระงับการดำเนินการต่อไป) ตัวกรองที่ถูกควบคุมไม่ได้เปิดใช้งานโดยอัตโนมัติ หากต้องการปิดใช้งานการควบคุมปริมาณ คุณต้องแก้ไขตัวกรอง โปรดทราบว่าคุณจำเป็นต้องเปลี่ยนแปลงบางอย่างจากตัวกรอง: การเปลี่ยนแปลงบางอย่างจากบันทึกของตัวกรองก็เพียงพอแล้ว

โปรดทราบว่าการแก้ไขตัวกรองจะอัปเดตอายุของตัวกรอง และอาจทำให้ปิดใช้งานได้หากถึงเงื่อนไขที่ต้องควบคุมอีกครั้งในช่วงเวลาสั้นๆ นับตั้งแต่การแก้ไขครั้งล่าสุด ซึ่งนำไปสู่ตัวกรองที่ใช้งานไม่ได้หากวิกิของคุณมีการแก้ไขที่ไม่เหมาะสมมากกว่าการแก้ไขที่ถูกต้อง



การสร้างและการจัดการตัวกรอง
เมื่อติดตั้งส่วนขยายแล้ว คุณจะสามารถสร้าง/ทดสอบ/เปลี่ยนแปลง/ลบตัวกรองได้ และสามารถเข้าถึงบันทึกได้จากหน้าการจัดการตัวกรองการละเมิด Special:AbuseFilter


 * รูปแบบกฎ - พื้นฐานของวิธีเขียนตัวกรอง
 * การกระทำ
 * กฎสากล
 * คำแนะนำในการเพิ่มประสิทธิภาพการใช้งานขีดจำกัดเงื่อนไข
 * หากต้องการนำเข้าตัวกรองจาก 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
รายการข้อมูลเกี่ยวกับตัวกรอง


 * พารามิเตอร์:
 * - รหัสตัวกรองที่จะเริ่มต้นแจกแจง
 * - รหัสตัวกรองที่จะหยุดแจงนับ
 * - ทิศทางในการแจกแจง (เก่ากว่า ใหม่กว่า)
 * - แสดงเฉพาะตัวกรองที่ตรงตามเกณฑ์เหล่านี้ (enabled|!enabled|deleted|!deleted|private|!private)
 * - จำนวนตัวกรองสูงสุดที่จะแสดงรายการ
 * - คุณสมบัติใดที่จะได้รับ (id|คำอธิบาย|รูปแบบ|การกระทำ|การเข้าชม|ความคิดเห็น|lasteditor|เวลาแก้ไขล่าสุด|สถานะ|ส่วนตัว)

เมื่อตัวกรองเป็นแบบส่วนตัว คุณสมบัติบางอย่างที่ระบุด้วย  จะหายไป เว้นแต่คุณจะมีสิทธิ์ผู้ใช้ที่เหมาะสม


 * ตัวอย่าง:

list = abuselog
แสดงรายการอินสแตนซ์ที่การดำเนินการทำให้เกิดตัวกรองการละเมิด


 * พารามิเตอร์:
 * - การประทับเวลาเพื่อเริ่มนับ
 * - การประทับเวลาที่จะหยุดแจงนับที่
 * - ทิศทางในการแจกแจง (เก่ากว่า ใหม่กว่า)
 * - แสดงเฉพาะรายการที่ผู้ใช้หรือที่อยู่ IP พยายามดำเนินการเท่านั้น
 * - แสดงเฉพาะรายการที่การดำเนินการเกี่ยวข้องกับเพจที่กำหนด
 * - แสดงเฉพาะรายการที่ทริกเกอร์รหัสตัวกรองที่กำหนด
 * - จำนวนรายการสูงสุดที่จะแสดงรายการ
 * - คุณสมบัติใดที่จะได้รับ: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)


 * ตัวอย่าง:



ข้อบกพร่องที่อาจเกิด

 * ผู้ใช้บางรายอาจพบว่าการสร้างตัวกรองใหม่หรือการแก้ไขตัวกรองเก่าล้มเหลว และผู้ใช้เพิ่งถูกเปลี่ยนเส้นทางไปยังหน้าเดิม หาก Wiki ใช้ใบรับรอง SSL ข้อผิดพลาดนี้อาจเป็นเพราะค่า ซึ่งอาจใช้ "http://" แทน "https://" ข้อบ่งชี้ของข้อผิดพลาดนี้คือเบราว์เซอร์ให้คำเตือน https สำหรับ Special:AbuseFilter เพจ (Topic:T23dyyih0ofjada5)



บูรณาการกับส่วนขยายอื่น ๆ
คุณสามารถรวม AbuseFilter เข้ากับส่วนขยายอื่น ๆ ได้หลายวิธี



การเพิ่มตัวแปรสำหรับการกรอง
คุณสามารถเพิ่มตัวแปรใหม่เพื่อใช้ในตัวกรองการละเมิดได้ รายการตัวอย่าง หากต้องการทำเช่นนั้น คุณควร:


 * เพิ่มตัวจัดการสำหรับตะขอ ในการเพิ่มตัวแปร คุณควรใช้   โดยที่   คือชื่อของตัวแปร และ   คือส่วนของคีย์ i18n คีย์เต็มจะเป็น
 * เพิ่มข้อความ i18n ที่คุณเลือกที่จุดก่อนหน้า
 * เลือกตัวจัดการ hook ที่จะคำนวณตัวแปร คุณสามารถ: ขึ้นอยู่กับกรณีการใช้งานของคุณ
 * ใช้ตะขอ นี่เป็นแนวคิดเฉพาะสำหรับตัวแปรที่เกี่ยวข้องกับหน้า
 * ใช้ตะขอ นี่เป็นแนวคิดเฉพาะสำหรับตัวแปรที่เกี่ยวข้องกับผู้ใช้
 * ใช้ตะขอ นี่สำหรับตัวแปรที่ไม่ได้ผูกกับเพจหรือผู้ใช้เฉพาะ
 * ใช้ตะขอ สิ่งนี้มีความยืดหยุ่นมากกว่า hooks อื่นๆ เล็กน้อย แต่ก็มีข้อเสีย: ตัวแปรของคุณจะไม่สามารถใช้งานได้เมื่อตรวจสอบรายการการเปลี่ยนแปลงล่าสุดที่ผ่านมา หากคุณต้องการใช้คุณลักษณะนั้น (และแนะนำให้ทำเช่นนั้น) คุณควรใช้หนึ่งใน hooks ที่แสดงไว้ด้านบน และใช้พารามิเตอร์ที่สาม
 * ภายใน hook handler มีสองวิธีในการเพิ่มตัวแปร:
 * วิธี "โดยตรง" คือการเรียก วิธีนี้เหมาะอย่างยิ่งเมื่อคำนวณค่าได้ง่ายและรวดเร็วเท่านั้น โดยค่าดังกล่าวจะถูกคำนวณแม้ว่าจะไม่มีตัวกรองที่ใช้งานอยู่ก็ตาม
 * วิธี "ขี้เกียจ" กำลังเรียก ในที่นี้ "method_name" คือตัวระบุ (ไม่ซ้ำกัน) ที่จะใช้ในการคำนวณตัวแปร (ขอแนะนำให้ใส่ชื่อส่วนขยายนำหน้าด้วย) หากต้องการลงทะเบียนเมธอด คุณควรเพิ่มตัวจัดการสำหรับ  hook ในนั้น คุณควรตรวจสอบว่า $method ที่ส่งผ่านตรงกับ 'method_name' ของคุณหรือไม่ และหากเป็นเช่นนั้น ให้คำนวณตัวแปร สุดท้าย $params คืออาร์เรย์ของพารามิเตอร์ที่คุณต้องใช้ในการคำนวณตัวแปร สิ่งเหล่านี้จะถูกส่งผ่านไปยังตัวจัดการ hook computeVariable สำหรับตัวอย่างนี้ คุณสามารถตรวจสอบ   ของ CentralAuth



การเพิ่มการกระทำที่กำหนดเอง
คุณสามารถเพิ่มตัวจัดการการดำเนินการแบบกำหนดเองได้ เพื่อให้แต่ละตัวกรองสามารถดำเนินการเพิ่มเติมได้ ในการทำเช่นนั้น คุณต้องเลือกชื่อสำหรับการกระทำ ('my-action' จากนี้ไป) จากนั้น:


 * สร้างคลาสชื่อ เช่น MyAction ซึ่งควรขยาย \MediaWiki\Extension\AbuseFilter\Consequence ซึ่งสามารถใช้ HookAborterConsequence หรือ ConsequencesDisablerConsequence ได้
 * เพิ่มสมาชิกให้กับตะขอ AbuseFilterCustomActions; ผู้สมัครสมาชิกควรจัดให้มีการโทรกลับตามที่ระบุไว้ในเอกสารประกอบของ hook ซึ่งจะส่งคืนอินสแตนซ์ของคลาสที่สร้างขึ้นด้านบน เช่น:

จากนั้นคุณควรเพิ่มข้อความ i18n ต่อไปนี้ คุณสามารถแทนที่ 'my_action' ด้วยเช่น 'block' เพื่อดูว่าข้อความมีไว้เพื่ออะไร:





การเพิ่มกลุ่มกฎ
คุณยังสามารถเพิ่มกลุ่มกฎเพิ่มเติม ซึ่งสามารถใช้เพื่อจัดกลุ่มตัวกรองการละเมิดที่มีอยู่ได้ โปรดทราบว่าในขณะนี้ แต่ละตัวกรองสามารถอยู่ในกลุ่มเดียวเท่านั้น (T116642) ปัจจุบัน ผู้ใช้บริการฟีเจอร์นี้ที่รู้จักเพียงรายเดียวคือ 1 ดอลลาร์ หากต้องการทำเช่นนั้น คุณควร:


 * เพิ่มชื่อกลุ่มต่อท้าย
 * เพิ่มโค้ดเพื่อเรียกใช้ตัวกรองกับกลุ่มของคุณ โปรดทราบว่า AbuseFilter จะไม่ทำอย่างนั้นด้วยตัวเอง เพื่อทำเช่นนั้น คุณควรสร้างวัตถุ  โดยส่งผ่านชื่อกลุ่มของคุณ



ดูเพิ่ม

 * Help:BlockedExternalDomains
 * วิกิ WMF หลายแห่งที่เปิดใช้งาน (และด้วยการกำหนดค่าใด)