Википедия:Спам-лист/Основы
Принцип работы спам-листов
Спам-лист представляет собою набор строк, каждая из которых — регулярное выражение, блокирующее определённый сайт или группу сайтов. Т.о. для исключения сайта из спам-листа достаточно удалить соответствующую строку. Выражение после знака # считается комментарием и не обрабатывается, поэтому для исключения можно также комментировать, проставляя # в начало строки. Существует 2 спам-листа:
- meta:Spam blacklist — общий спам-лист для всех проектов фонда;
- MediaWiki:Spam-blacklist — локальный спам-лист для раздела, записи в котором работают только для этого раздела.
- Служебная:BlockedExternalDomains — локальный спам-лист внешних доменов для раздела, записи в котором работают только для этого раздела.
Кроме спам-листов существует MediaWiki:Spam-whitelist (вайт-лист), в котором определяются локальные исключения, также представленные регулярными выражениями. вайт-лист окончательно определяет, будет ссылка заблокирована или нет, «перекрывая» записи в локальном или глобальном спам-листах полностью либо частично.
Обрабатываются ссылки в диффе любой правки, вне зависимости от флагов участника и типа правки (малая, откат). Если ссылка подпадает под выражение в одном из спам-листов, то она блокируется (либо разрешается).
Основы регулярных выражений
Согласно определению, регулярное выражение — паттерн (образец, шаблон) для синтаксического разбора текста.
Выражение может состоять из следующих частей (конкретные примеры и полная информация приведены по ссылкам, тут только небольшой summary):
- Обычные символы (все, кроме представленных в пункте ниже) — записываются как есть.
- Спецсимволы (
[ ] \ ^ $ . | ? * + ( ) { }
) — используются в качестве служебных для обозначения классов символов, группировки и т. п. При необходимости использовать спецсимволы в качестве обычных они должны быть экранированы с помощью знака \. То есть.
обрабатывается как любой символ,\.
— как точка. - Управляющие символы — представляют собой замену для некоторых символов, вывод которых может быть затруднён (
\t
— знак табуляции,\r
— возврат каретки и т. д.). - Символьные классы — набор символов в [ ], представляют собой подстановку любого из набора символов. Например,
[abc]
означает любой из символов a, b, c;[0-9]
— цифра от 0 до 9. Существуют сокращенные записи для частоиспользуемых классов (\d
— только цифры,\S
— непробельные символы и т. п.) - Символы позиционирования внутри строки — определяют, в каком месте строки должно встречаться искомое выражение.
- Квантификаторы — подставляются после символа, класса или группы и определяют, сколько раз может повторятся выражение. Например,
*
означает, что предыдущий символ, класс символов или группа может повторятся сколько угодно. То естьa*
— любая последовательность букв a.
Конкретные примеры
Суть | Выражение | Разъяснение | Пример срабатывания | Пример несрабатывания |
---|---|---|---|---|
Обычная блокировка сайта | \bexample\.com
|
\b обозначает начало слова (слова разделяются пробелами, точками и пр.). Нужно для того, чтобы запись abc\.com не блокировала сайт dabc.com Точка экранируется обратным слэшем \
|
http://example.com http://www.example.com http://www.example.com/sd |
http://eexample.com http://example.ru http://examplee.com |
Блокировка подсайта | \bsite1\.example\.com
|
См. выше | http://site1.example.com http://www.site1.example.com http://site1.example.com/bla |
http://example.com http://site2.example.com |
Блокировка сайта за исключением главной | \bexample\.com\.*\/
|
/ — спецсимвол, его нужно экранировать обратным слэшем \ . Вставлен, так как главная — единственная страница сайта без слеша.\.* вставлено для блокирования ссылки вида example.com.
|
http://www.example.com/sd http://www.example.com/ |
http://www.example.com |
Блокировка сайта в разных доменных зонах | \bexample\.(?:com|ru|us)
|
Выражение в скобках — группа, | означает выбор одного из выражений, ?: - служебный модификатор, который в простых случаях не влияет на результат разбора, но влияет на его производительность
|
http://www.example.ru http://www.example.com http://example.us/qw |
http://www.example.by |
Блокировка определённых подстраниц сайта | \bexample\.com\.*\/(?:mp3|video)
|
\.* вставлено для блокирования ссылки вида example.com./mp3
|
http://www.example.com/mp3 http://www.example.com/video http://example.com/video/tag |
http://www.example.com http://www.example.com/mp2 |
Блокировка подсайтов | \.example\.com
|
Лидирующая \. будет отсекать подсайты (так как он начинается с точки), оставляя главный сайт незаблокированным.
|
http://www.example.com http://abc.example.com |
http://example.com |
BlockedExternalDomains
Для добавления домена в спам лист Служебная:BlockedExternalDomains, достаточно ввести в соответствующие поля сам домен и комментарий, а затем нажать кнопку «Отправить». После этого домен будет добавлен в таблицу ниже.
Список этих же доменов можно найти на странице MediaWiki:BlockedExternalDomains.json. Там же можно откорректировать имеющеюся информацию или добавить новый домен. Для добавления, необходимо после последней фигурной скобки }
через запятую написать новое выражение:
{
"domain": "Домен для блокировки",
"notes": "Комментарий",
"addedBy": "Имя администратора"
}
Пример:
{
"domain": "доммикс.рф",
"notes": "активный спам",
"addedBy": "OneLittleMouse"
}