Борьба со спамом в блогах и других формах ввода информации

Любой, кто имеет собственный блог или гостевую книгу, знает, сколько неудобств доставляют спамеры, особенно те, кто не участвует в общественной жизни и у кого слишком много свободного времени. Автоматизированные роботы путешествуют по Всемирной паутине и пытаются оставить свои ссылки, рекламные объявления или другую нежелательную информацию везде, где обнаруживают HTML-форму. Одной из распространенных мер по борьбе со спамом, предпринимаемых во многих блогах, является CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart – полностью автоматизированный открытый тест Тьюринга для различения компьютеров и людей). Если вы попытаетесь отправить URL в Google, создать учетную запись на сайте Yahoo! или купить билет на сайте Ticketmaster, то увидите изображение с несколькими искаженными символами.

Идея на удивление проста: только человек способен правильно воспринять текст – алгоритму распознавания это пока не под силу. К сожалению, у такого способа существует один недостаток: большинство реализаций алгоритма CAPTCHA требуют наличие у клиента поддержки графических изображений, что порождает проблему доступности.

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


Элемент управления NoBot из пакета ASP.NET AJAX Control Toolkit пытается обеспечить более слабую, но при этом более доступную защиту форм. Когда NoBot добавляется в страницу, он привносит в механизм отправки формы некоторые дополнительные проверки, обеспечивающие повышенные меры безопасности. Например, этот элемент использует механизм управления сеансами ASP.NET, чтобы определить, когда последний раз пользователь выполнял отправку формы. Если пользователь произвел несколько попыток отправки формы за короткий промежуток времени, генерируется сообщение об ошибке.

Это сообщение не отображается броузером автоматически. Вместо этого метод IsValid() компонента NoBot проверяет форму и возвращает сообщение о состоянии (в виде параметра out), если была обнаружена какая-либо проблема. Затем эти данные могут использоваться сервером для подготовки соответствующего сообщения об ошибке.

Пример 12.8. Использование элемента управления NoBot AntiSpam.aspx
<%@ Page Language="C#" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
ASP.NET AJAX

(body)
(asp:ScriptManager ID="ScriptManager1" runat="server" /)

Your blog entry comment:
(asp:TextBox ID="TextBox1" TextMode="MultiLine" runat="server" /)
(br /)
(asp:Button ID="Button1" runat="server"
Text="Enter comment" OnClick="ProcessData" /)
(br /)
(asp:Label ID="Label1" runat="server" /)

(ajaxToolkit:NoBot ID="NoBot1" runat="server"
CutoffMaximumInstances="5" CutoffWindowSeconds="30"
ResponseMinimumDelaySeconds="3" /)

(/body)
.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Динамическая свертка единственной панели
Добавление функции автодополнения к элементу управления TextBox
Отображение всплывающего окна на странице
Присоединение календаря к текстовому полю
Создание интерфейса с вкладками