КАК ЗАЩИТИТЬСЯ ОТ ДУРАКОВ

Или как поставить на свою гостевую книгу
(Perl CGI script) фильтр от непарламентских выражений.

"В России две беды - дураки и дороги." Применительно к российской части Интернет эту фразу можно пререфразировать (намеренная тавтология) так: "В России две беды - линии и дураки." В настоящей статье под дураками будем подразумевать не чайников, ламмеров, юзеров и пр, а самую неприятную разновидность посетителей сайтов, оставляющих в гостевых книгах записи, содержащие непереводимый русский фольклор.

Желание славы - вещь неистребимая и такие навозные жуки будут существовать всегда. Это доставляет какое-то извращенное удовольствие. Особенно им весело посылать матерные послания во всякого рода автоответчики: ты его матом, а он тебе "Спасибо за то, что уделили немного Вашего драгоценного внимания".

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

Можно ежедневно вручную вычищать такие сообщения, но можно и поставить антимат-автомат.

Вниманию ВЕБ мастеров и администраторов предлагается простой и надежный антимат-скрипт.

Все просто. CGI script анализирут входной поток, приводит сообщение к единому формату и производит синтаксический анализ входящей строки.  По результатам работы этого скрипта пользователь, употребивший в выражении запрещенные администратором слова перенаправляется на особую страницу, где ему в доступной форме объясняют, что ругаться не хорошо.        

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

Программа написана на языке Perl, который с помощью одного регулярного выражения производит довольно сложный синтаксический анализ. Скорее всего, эту же программу можно написать на VBScript или JavaScipt, но эти языки плохо работают с синтаксическими единицами и будут весьма громоздкими.

Программа состоит из 3-х частей:

  1. Сама программа (подпрограмма на языке Perl)
  2. Файл - предупреждение (html)
  3. Файл - подложка (gif)

 

1. текст программы

sub antimat {
$check = $_[0];
$check =~ tr/а-яёЁ/А-ЯЕЕ/;
if ($check =~ /ХУЙ|ХУИ|ХУЕ|ПИЗД|ЖОП|\s*ПИД.Р|ЗАЛУПА|ЕБАН|ЕБАТ|ЕБЕНА|Г.НДОН|ГАВН|ГОВН|МУДАК|БЛЯД/){
   print "Location: http://www.vi.ru/blink.htm\n\n";
   exit;
}
}

!!! В строке Location в качестве аргумента функции указывается полный путь к файлу-предупреждению. Также обязателен признак конца html-заголовка - \n\n

Текст этой подпрограммы можно разместить в любом месте Вашего скрипта. Обычно все подпрограммы скидывают в конец файла. Вы можете расширить список слов, используя те же самые регулярные выражения.

Можно сохранить эту подпрограмму в отдельном файле на диске и вызывать функциями require() или use (), но тогда после последней фигурной скобки нужно будет поставить 1;
(для того чтобы обработчик ошибок игнорировал информацию о включении файла)

2. Способ вызова

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

        @pairs = split(/&/, $buffer);
        foreach $pair (@pairs)
                {
                    ($field, $value) = split(/=/, $pair);
                    $value =~ tr/+/ /;
                    $value =~ s/%([0-9A-F]{2})/pack('C',hex($1))/eg;
                    $FORM{$field} = $value;
                }
До сих пор - стандартная работа CGI-скрипта
$string = $FORM{string};
Далее следует вызов подпрограммы
antimat ($string);

3. Текст html файла blink.htm (Вы, разумеется, можете сконструировать свой ответ)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>-= РУГАТЬСЯ НЕ ХОРОШО =-</title>
</head>
<body background="blink.GIF">
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
<h1 align="center">РУГАТЬСЯ НЕ ХОРОШО</h1>
</body>
</html>

4. Файл blink.GIF. Используется в качестве цвета фона в файле blink.htm. Как следует из названия - (мерцание мигание) эта подложка мерцает. Частота и цвет подобраны таким образом, чтобы создавать ощущение дискомфорта.

blink.GIF

Удачи Вам.
Будут замечания, исправления - пишите.
Ваше ноу-хау может быть опубликовано в "Стране Советов"
Если у Вас есть что сказать - говорите.

Wowwi.
Отправьте ссылку на эту страничку знакомым Perl программистам
Bookmark this page using Ctrl+D

Wowwi Home Page

  Программистам:
Защита Гостевой
Защита от спама
Отладка Perl-CGI (1)
Отладка Perl-CGI (2)
Perl. Методы
Долой пароли
JavaScript Tester
Делаем Sitemap
HTML как PHP

  Всем-всем-всем:
Дешёвые лекарства
Школа обольщения
Бесплатное метро
Как защитить дачу
Заявление в ОВИР
RUS_Keyboard
Transliterator
За помощью в ИНТЕРПОЛ
АлкоМЕТР
Секреты NOKIA

Страна Советов


© Wowwi 1999-2017 wowwi@mail.ru