Фильтр правок — различия между версиями

Материал из Мегапедии
Перейти к: навигация, поиск
Строка 6: Строка 6:
 
* Username BlackList и Title BlackList наиболее близко подошли к уровню фильтра правок, позволяя запрещать названия страниц от создания и редактирования, а также некоторые имена учетных записей. Однако, все эти запреты находились на публичной страницы, что создавало проблему сокрытия личных данных, а также существенно упрощало процесс преодоления наложенных ограничений.
 
* Username BlackList и Title BlackList наиболее близко подошли к уровню фильтра правок, позволяя запрещать названия страниц от создания и редактирования, а также некоторые имена учетных записей. Однако, все эти запреты находились на публичной страницы, что создавало проблему сокрытия личных данных, а также существенно упрощало процесс преодоления наложенных ограничений.
  
Меры, принимаемые фильтром, разнятся от логгирования срабатывания фильтра без каких-либо помех совершению правки до бессрочной блокировки подсети класса B и снятия всех технических флагов.
+
Меры, принимаемые фильтром, разнятся от логгирования срабатывания фильтра без каких-либо помех совершению правки до бессрочной блокировки подсети класса B и снятия всех технических флагов. В отличие от некоторых других сайтов, фильтр не позволяет осуществлять автозамены слов в размещаемом пользователем тексте.
  
Сам фильтр представляет собой набор правил, написанных на специальном псевдоязыке, манипулирующем стандартными операторами («больше», «меньше», «равно», «содержит», «совпадение по регулярному выражению» и т. д.) и переменными, автоматически получаемыми фильтром правок для каждого обрабатываемого действия. В переменные входит: имя участника, список последних авторов страницы, старый и новый текст страницы в разных форматах, добавленные и удаленные строки и т. д. Операторы «и» и «или» позволяют использовать в одном фильтре несколько условий.
+
Каждый фильтр представляет собой набор правил, написанных на специальном псевдоязыке, манипулирующем стандартными операторами («больше», «меньше», «равно», «содержит», «совпадение по регулярному выражению» и т. д.) и переменными, автоматически получаемыми фильтром правок для каждого обрабатываемого действия. В переменные входит: имя участника, список последних авторов страницы, старый и новый текст страницы в разных форматах, добавленные и удаленные строки и т. д. Операторы «и» и «или» позволяют использовать в одном фильтре несколько условий.
 +
 
 +
Написание фильтров требует хорошего знания этого языка и грамотного просчета всех возможных ''false positives'', ошибочных срабатываний (например, запрет оскорбительного слова «бл%» может повлечь запрет и слова «потреблять»). В идеале фильтр должен отклонять все злонамеренные правки, пропуская при этом добросовестные. Однако, в силу сложности точного определения границы и изобретательности нарушителей, программист фильтров должен балансировать между возможностями «пропустить вандализм» и «отклонить нормальную правку». В случае серьезной необходимости и невозможности точной отладки фильтров, их намеренно делают такими, что они могут отклонять и нормальные правки, обеспечивая тем не менее хорошую защиту от плохих правок.
  
 
Так как при обработке фильтра интерпретатор поочередно проверяет верность заданных выражений и прекращает обработку фильтра после того, как хоть одно из обязательных условий отдало false, возможна оптимизация фильтров: помещение в его начале общих правил, которые позволяют сильно сузить круг срабатывания (например, число правок), а только затем ресурсоемких специфических правил.
 
Так как при обработке фильтра интерпретатор поочередно проверяет верность заданных выражений и прекращает обработку фильтра после того, как хоть одно из обязательных условий отдало false, возможна оптимизация фильтров: помещение в его начале общих правил, которые позволяют сильно сузить круг срабатывания (например, число правок), а только затем ресурсоемких специфических правил.

Версия 22:18, 8 октября 2011

Фильтр правок — расширение движка MediaWiki, предназначенное для автоматической проверки атрибутов действия на соответствие заданным администраторами правилам и принятия определенных ими мер отслеживания и пресечения. Своего рода продвинутая вариация ранее применявшихся в интернете концепций спам-листа и вордфильтра.

До создания фильтра правок в MediaWiki уже существовали некоторые функции фильтрации нежелательного контента: например, запрет определенных фраз по регулярному выражению ($wgSpamRegex), защита страниц от редактирования и создания, расширения Username BlackList и Title BlackList. Однако, эти способны защиты имели существенные недостатки:

  • Регулярные выражения, определяемые в переменной, могли задавать только техники сайта. Помимо этого, проверялись только содержимое страницы и описание правки;
  • Защита страниц накладывается только на отдельные названия, что позволяло вандалу легко обойти запрет, изменив всего несколько символов (см. HAGGER); каскадная защита, позволяющая защищать множество страниц, неэффективна и не может быть наложена на уровне autoconfirmed;
  • Username BlackList и Title BlackList наиболее близко подошли к уровню фильтра правок, позволяя запрещать названия страниц от создания и редактирования, а также некоторые имена учетных записей. Однако, все эти запреты находились на публичной страницы, что создавало проблему сокрытия личных данных, а также существенно упрощало процесс преодоления наложенных ограничений.

Меры, принимаемые фильтром, разнятся от логгирования срабатывания фильтра без каких-либо помех совершению правки до бессрочной блокировки подсети класса B и снятия всех технических флагов. В отличие от некоторых других сайтов, фильтр не позволяет осуществлять автозамены слов в размещаемом пользователем тексте.

Каждый фильтр представляет собой набор правил, написанных на специальном псевдоязыке, манипулирующем стандартными операторами («больше», «меньше», «равно», «содержит», «совпадение по регулярному выражению» и т. д.) и переменными, автоматически получаемыми фильтром правок для каждого обрабатываемого действия. В переменные входит: имя участника, список последних авторов страницы, старый и новый текст страницы в разных форматах, добавленные и удаленные строки и т. д. Операторы «и» и «или» позволяют использовать в одном фильтре несколько условий.

Написание фильтров требует хорошего знания этого языка и грамотного просчета всех возможных false positives, ошибочных срабатываний (например, запрет оскорбительного слова «бл%» может повлечь запрет и слова «потреблять»). В идеале фильтр должен отклонять все злонамеренные правки, пропуская при этом добросовестные. Однако, в силу сложности точного определения границы и изобретательности нарушителей, программист фильтров должен балансировать между возможностями «пропустить вандализм» и «отклонить нормальную правку». В случае серьезной необходимости и невозможности точной отладки фильтров, их намеренно делают такими, что они могут отклонять и нормальные правки, обеспечивая тем не менее хорошую защиту от плохих правок.

Так как при обработке фильтра интерпретатор поочередно проверяет верность заданных выражений и прекращает обработку фильтра после того, как хоть одно из обязательных условий отдало false, возможна оптимизация фильтров: помещение в его начале общих правил, которые позволяют сильно сузить круг срабатывания (например, число правок), а только затем ресурсоемких специфических правил.