![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| DezmASter |
|
||||||||||
![]() Дизайнер :) ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1520 Регистрация: 3.2.2006 Где: Украина, Запорожь е Репутация: 1 Всего: 109 |
Практически любой проект имеет гостевую книгу, форум, формы отправки писем и другие интерактивные элементы. И практически все сталкиваются с поисковым спамом или подобными нарушениями. Наибольшие неприятности приносят скрипты-роботы, которые могут в считанные часы переполнить Вашу гостевую книгу рекламными сообщениями. Такой традиционный прием как блокировка IP адресов дает малый эффект, т.к. используются анонимные прокси серверы. Не менее популярный прием - это размещение графической картинки с изображением кода, который требуется ввести. Об этом эффективном приеме здесь и пойдет речь.
Среди встретившихся мне примеров реализации такой защиты, только в редких случаях она выносилась в отдельный модуль и еще реже оформлялась в виде классов, поэтому я написал свой. При его разработке, учитывались следующие требования: * возможность многократного использования; * простота внедрения; * отвязка от использования MySQL и текстовых файлов; * отказ от прямого вывода изображения в поток (это делается в подавляющем большинстве случаев, но у меня часто используется формирование текста страницы в буфере-строке); * гибкие настройки работы модуля (размер, шрифт, виды защиты и т.п.). В результате получился класс, немного упрощенный код которого приведен ниже. Вы можете без проблем использовать его у себя, подстроив под свои задачи и нужды. Также он очень легко интегрируется в любой интерфейс. Рассмотрим подробно его код. Модуль tuning.php
Описанный класс очень прост в использовании и может применять многократно в проекте, с помощью всего лишь нескольких вызвовов. Рассмотрим примеры использования модуля tuning.php (фрагменты кода). Для получения самого кода и url картинки может использоваться код такого типа:
Вывод картинку с защитным кодом в некоторой форме, можно организовать так:
Для проверки корректности кода удобно использовать отдельную функцию:
Чтобы считать переданные из формы значения кода и хеша:
Итак, как Вы видите все довольно просто. Пример его использования Вы можете увидеть в моей гостевой книге. Сейчас готовится его применение для защиты от накруток в САР (здесь нужна небольшая модификация кода), также он уже используется в других моих проектах. Буквально с первого дня он отсек потом спама, который уже начал доходить до 10-12 сообщений в день. Преимущества такого подхода очевидны: * нет никакой необходимости в БД и файлах, для хранения кода - это значительно снижает требования по ресурсам; * Вы можете сами менять алгоритм защиты, например, взять не одну функцию md5, а сочетание md5 и crypto, что сделает передаваемый код практически неуязвимым для взлома; * возможность сохранения картинки в файле, расширяет область применения такой защиты; * очень гибкие настройки позволят Вам, везде применять этот класс. Приведенный скрипт естественно можно и нужно дорабатывать и улучшать. В этом примере я специально убрал специфичные для своего проекта фрагменты кода, чтобы показать универсальный пример, который в то же время готов к реальному использованию. Надеюсь приведенный пример поможет Вам в работе и буду рад Вашим отзывам! Автор: Брудасов Сергей Сайт автора: http://sb-money.ru/ |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |