Борьба со спамботами — различия между версиями
Palermo (обсуждение | вклад) (начало) |
Palermo (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | '''Борьба со спамботами''' — борьба с | + | '''Борьба со спамботами''' — борьба с новым видом спамботов, появившимися в вики-проектах в [[2012]]. |
== Каптча == | == Каптча == | ||
Строка 11: | Строка 11: | ||
== Очистка от спама == | == Очистка от спама == | ||
− | Если спамботы успели достаточно замусорить вики-проект, можно | + | Если спамботы успели достаточно замусорить вики-проект, можно провести зачистку оставленного ими спама из базы данных (данные спамботов не представляют ценности, поэтому их полное удаление не может повредить вики-проекту). Для этого надо составить список спам-ботов на основе журнала регистрации (их выдают характерные ботоподобные логины, составлять надо с осторожностию, чтобы не попасть по добросовестным пользователям), затем составить .sql-файл команд с помощью обработки списка регулярным выражением: |
: Поиск: ''^.*?201\d (\w+) \(обсу.*?$'' | : Поиск: ''^.*?201\d (\w+) \(обсу.*?$'' | ||
: Заменить на: ''delete from recentchanges where rc_log_type = 'newusers' and rc_user_text = '\1';\ndelete from logging where log_type = 'newusers' and log_user_text = '\1';\ndelete from user where user_name = '\1';\ndelete from abuse_filter_log where afl_user_text = '\1';\ndelete from ipblocks where ipb_address = '\1';\ndelete from logging where log_type = 'block' and log_title = '\1';'' | : Заменить на: ''delete from recentchanges where rc_log_type = 'newusers' and rc_user_text = '\1';\ndelete from logging where log_type = 'newusers' and log_user_text = '\1';\ndelete from user where user_name = '\1';\ndelete from abuse_filter_log where afl_user_text = '\1';\ndelete from ipblocks where ipb_address = '\1';\ndelete from logging where log_type = 'block' and log_title = '\1';'' | ||
− | Затем этот sql-файл надо применить к базе данных, что зачистит все признаки спамботов из всех журналов, списков, служебных страниц. Далее необходимо зачистить записи в таблице text, соответствующие срабатываниям фильтра или удалённому спаму, запустить initStats.php для пересчёта числа зарегистрированных участников. | + | Затем этот sql-файл надо применить к базе данных, что зачистит все признаки спамботов из всех журналов, списков, служебных страниц. Далее необходимо зачистить записи в таблице text, соответствующие срабатываниям фильтра или удалённому спаму (для оптимизации размера базы данных), запустить initStats.php для пересчёта числа зарегистрированных участников. |
[[Категория:MediaWiki]] | [[Категория:MediaWiki]] |
Текущая версия на 16:11, 29 апреля 2013
Борьба со спамботами — борьба с новым видом спамботов, появившимися в вики-проектах в 2012.
Каптча
Эти спамботы характеризуются возможностью обходить стандартные методы каптчи (в частности, SimpleCaptcha в mediawiki, которая предлагает решение простого арифметического примера), поэтому надёжный способ — использование QuestyCaptcha с простыми вопросами на русском языке. Спамботы не в состоянии обойти такую каптчу:
$wgCaptchaClass = 'QuestyCaptcha'; $wgCaptchaQuestions[] = array( 'question' => 'Вопрос:', 'answer' => 'Ответ' ); ...
Очистка от спама
Если спамботы успели достаточно замусорить вики-проект, можно провести зачистку оставленного ими спама из базы данных (данные спамботов не представляют ценности, поэтому их полное удаление не может повредить вики-проекту). Для этого надо составить список спам-ботов на основе журнала регистрации (их выдают характерные ботоподобные логины, составлять надо с осторожностию, чтобы не попасть по добросовестным пользователям), затем составить .sql-файл команд с помощью обработки списка регулярным выражением:
- Поиск: ^.*?201\d (\w+) \(обсу.*?$
- Заменить на: delete from recentchanges where rc_log_type = 'newusers' and rc_user_text = '\1';\ndelete from logging where log_type = 'newusers' and log_user_text = '\1';\ndelete from user where user_name = '\1';\ndelete from abuse_filter_log where afl_user_text = '\1';\ndelete from ipblocks where ipb_address = '\1';\ndelete from logging where log_type = 'block' and log_title = '\1';
Затем этот sql-файл надо применить к базе данных, что зачистит все признаки спамботов из всех журналов, списков, служебных страниц. Далее необходимо зачистить записи в таблице text, соответствующие срабатываниям фильтра или удалённому спаму (для оптимизации размера базы данных), запустить initStats.php для пересчёта числа зарегистрированных участников.