Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Определение "пустословного" поста. Алгоритмы. Мысли. (http://forum.oszone.net/showthread.php?t=31165)

Prisoner 30-05-2004 17:54 213738

Сабж. Ввиду ограничения на длину оного развиваю мысль - есть некая форма, основная ее задача дать посетителю возможность оставить сообщение: задать вопрос, отослать пожелание, ответить в данном топике и т. п.. Теперь представьте себе, что я шутки ради напиш скрипт который будет вызывать другой скрипт, скрипт обработки этой некой формы с такими данными, что загажу хранилище данных (БД, файл или что-либо другое). Посты могут быть от бессмысленного "123", "gdfgdfgdfgdfgdf", "qwerty" и т. д. до рандомно генерируемого текста длиной "до сколько надо". В общем напишу флудер под конкретную форму.

Мне интересны ваши мысли по поводу отсева такого рода сообщений. Лично мне видится некая функция которая должна возвращать ненадежность строки, скажем в процентах. В самой функции есть некоторое количество тестов которым входящая строка последовательно подвергается. После прохождения всех тестов результаты тестов анализируются и выдается оценка этой строке. Какие тесты можно было бы предложить? Длина? (наврядли можно сказать что-либо вразумительное одним символом, а в зависимости от темы формы и N символами). Анализ семантики? (ошибочные сочетания допустимого набора символов) Статистика символов? (не может же вопрос состоять из одних согласных, так?)

В общем мне бы было интересно услышать ваши мнения, господа.

PS Если данный вопрос уже решен кем-либо (злой ведь вопрос, не так ли?), то ссылкам буду рад как ребенок :).

Vlad Drakula 30-05-2004 19:40 213739

Prisoner
для этого в бвзе есть дополнительная информачия о записи
например IP

зная IP нарушителя элементарно можно удалить весь флуд...

Prisoner 30-05-2004 20:06 213740

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

Vlad Drakula 30-05-2004 20:43 213741

Prisoner
1) можно смотреть на посты пришедшие с одного ip
и сравнивать их.

2) можно смотреть на регулярность посылки постов.

3) можно смотреть в какую тему посты добавляются.

vadimiron 30-05-2004 21:25 213742

1)Самое простое и известное против флуда, эту не допускать ввод одного и того же сообщения (здесь я ничего нового не открыл :))
2) Следущая мысль: можно попробывать создать Лексический анализатор, например туда могут быть включены такие моменты
-не допускать буквосочетания, состоящие из знаков, которые находятся рядом друг с другом на клавиатуре(например последовательно, как qwerty) (здесь также можно почитать литературу по принципам размещения знаков на клавиатуре)
-запрещать буквосочетания, которые не могут встречатся в языке(например яы, чя, жш и так далее) (здесь также можно почитать литературу по русскому языку (по теории русского языка) или какого то другого)
-запрещать слишком большой процент числовых знаков от общего количества знаков (но если форум например по математике, такое не пройдёт)

И в результате высчитываем сколько процентов берут на себя подобные знакосочетания, и если процент слишком велик, скорей всего данное сообщение недоброкачественное :)

Пока больше идей нет, появятся, сразу напишу, тема интересная

Prisoner 30-05-2004 22:27 213743

Vlad Drakula
Оки, будем контраргументировать.
1) Беда в том, что сложно ручаться, что ип достоверен. Хороши мы быдем если кто-то подменив ип нагадил, а мы метлой вынесли и все нормальные посты с этого ипа. Это конечно несколько компенсируется мыслью (2), но все же мне представляется сомнительным использование для этого дела ипа.
2)Регулярность мысль  конечно увлекательная. Можно исходить из определения флуда как множества сообщений в еденицу вермени и на этом факте рубить сообщения. Но меня увлекает идея абстрагирования - хочется не привлекать никаких данных кроме самого поста.
3) А если тема одна? Линейка - гостевая. опять-таки общий ворос.

vadimiron
1) А если не запрещать? Ведь не запрещено же тебе тут постить больше одного раза в год? :)
2) Эта мысль уже гораздо забавнее ибо позволяет решать вопрос в общем. Правда отсеивать она будет либо лажу, либо НЕлажу, но лажово написанную с точки зрения орфографии (глядите в вы нам писАли :)), но это кстати, даже лучше... имхо.


mar 30-05-2004 23:41 213744

Vlad Drakula
есть такое небезизвестное место на свете - Санкт-Петербургский государственный университет называется. Так вот там (по крайней мере в Василиостровской части) целая куча народу, а часто и подразделений будет идентифицироваться, как один ip. (про отсев внутренних уже писалось) И что-то мне подсказывает, что не токмо там

vadimiron
идея лексического анализатора мне нравится. По идее анализ должен сопрягаться с принципами, по которым работают антиспамерские анализаторы. Можно даже попробовать что-нибудь самообучающееся придумать.  Но замедлять работу это все будет безбожно по мере роста словаря анализатора :(

Цитата:

запрещать буквосочетания, которые не могут встречатся в языке
Но легко встречаются при печати (задели соседнюю клавишу)
Цитата:

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

А вообще, задача интересная, но на практике неблагодарная (сугубое ихмо) Равно как и (ихмо опять же) не слишком перспективны всякие идеи антимата.

Добавлено:

кстати, а если я напишу флудер, который будет брать (хоть из библиотеки Мошкова) куски вполне осмысленного текста и заливать его в форму? Ну вот "война и мир" в нарезке, например. Тут лексический анализатор не очень поможет. Хм. Кажется алгоритм флуда мне дался легче, чем антифлуда :))

Prisoner 31-05-2004 02:12 213745

Опа... кстати удалось на славу. Идея анализатора мне тоже нравится, в общем-то к идее неполного анализатора я и вел, но вот кстати меня несколько остудило. Скорее всего придется применять еще и методы предложенные Владом. Гибридный анализ то есть.
А еще какие подводные камни приходят в ваши умные головы?

Vlad Drakula 31-05-2004 20:17 213746

буду комментировать всех сразу:

1) выносить нужно не только по IP но и по дате, а если это форум, то и по пользователю.

2) лексический аналиж это не очень простое дело, вот вы говорите взять и про анализоровать, а вы хорошо себе это представляете?

вы представляете структуру анализатора, регулярные выражения которые вы собираетесь применять, время на это нужное???

дело в том что такая защита нужна на форумах гда много поситителей.

раз много поситителей то значит много нагрузки на сервер, а вы хотите взять и вот так разом увеличить нагрузку в разы... это означает одно - смену сервера на более мошьный!

Prisoner 04-06-2004 04:46 213747

Хм, ну оки. Оставим пока такие высоты как анализатор. Какие недостатки вы видите в наборе тестов? Как уже реализовать его в языке не суть важно... Каждый тест имеет свой вес который потом учитывается в выдаче вердикта.

mar 04-06-2004 10:54 213748

Prisoner
а какие тесты?

Prisoner 04-06-2004 17:37 213749

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

mar 04-06-2004 18:08 213750

тогда, наверное, не количество ошибок, а процент от общего теста (только что заметила, что набрала общегго, а потом раскладку не перключила и пошло xnj (что) ;)
Причем это в психологию и распознавание образов надо лезть:
вся штука в том,  что мы воспринимаеи слова, скорее, как иероглифы - по начертанию и целиком, поэтому легко, часто даже, не спотыкаясь, узнаем слова с ошибками. (А то посты многих из нас пришлось бы читать со словарем ;) Но для такого распознавания нужно, чтобы какой-то (не знаю - какой) % слова был похожим на правду.
Иначе говоря, по-хорошему, чтобы не отсеивать, как злостное нарушение, опечатки, или двойной удар по клавише  (это все может быть сплошь и рядом) надо придумать такой тест, который потянет на задачку из разряда распознавания образов :( А ведь приложению еще что-то делать надо будет.
Ну, а в простейшем виде - назначить волевым порядком какой-то допустимый % (от общего числа знаков) недопустимых сочетаний.

Prisoner 04-06-2004 18:39 213751

Ну оки... распознавание образов. Ни :). Я на днях попробую составить сочетания правильные букв и выявить какие из ошибочных могут считаться менее злостными чем другие - скажем, категория "двойного случайного нажатия". Ко всему можно всегда увеличить глубину проверки - не две соседние буквы, а три. К тому же можно провести тест как для двух, так и для трех букв, это даст более ровную характеристику.

mar 04-06-2004 18:51 213752

наверное,  по трем знакам и все-таки % от общего текста.
А потом нас всех заставить пройти этот тест :biggrin:
(а список будет интересно посмотреть :) -советую  поковырятья в почтовых фильтрах - там в этой области довольно много наработано.


Время: 01:57.

Время: 01:57.
© OSzone.net 2001-