алгоритм перевірки
Коротко розглянемо алгоритм CAPTCHA-перевірки відвідувача, зробивши наголос на захист від вразливостей, які пов'язані з власне розпізнаванням картинки:
Користувач заходить на захищає сторінку, ми створюємо для нього сесію. Найкраще, якщо цю сесію буде створювати сама CAPTCHA-картинка (вірніше, скрипт, які її видає).
Скрипт генерує випадковий текст, записує його в сесію і видає картинку з цим текстом відвідувачеві. Потім, під час перевірки, відповідь, введений відвідувачем, порівнюється з еталоном, збереженим в цій сесії.
Якщо випадковий текст буде генеруватися ні до видачі картинки, а при видачі сторінки з формою, з'являється небезпека, що бот зробить кілька запитів до скрипту картинки, щоб отримати кілька варіантів одного і того ж тексту (якщо картинка видається з випадковими спотвореннями - тобто різна від разу до разу, хоча і з одним і тим же закодованим текстом). Розпізнати текст, якщо є кілька його варіантів, набагато простіше.
Генерація коду самою картинкою дозволяє реалізувати функцію "отримати інший код, якщо цей погано Новомосковскется користувачем" - буде досить оновити тільки картинку.
Поширеною помилкою є те, що при перевірці правильності введеного тексту його просто беруть з сесії і порівнюють з відповіддю відвідувача. Проблема в тому, що зловмисник може підсунути нам номер неіснуючої сесії і ввести порожній перевірочний текст. І цей порожній текст буде дорівнює пустому тексту з неіснуючої сесії - все, заслін пройдено.
Важливо очищати сесію після кожної перевірки (неважливо, успішної чи ні). Не варто покладатися на те, що при оновленні сторінки скрипт картинки згенерувати новий текст - бот може просто не запитувати картинку, а вводити один і той же відповідь, який на самому початку прочитав і повідомив боту сам зловмисник.
Якщо ви звернете увагу на ці моменти, ваша CAPTCHA буде захищена від ботів, які не використовують розпізнавання. Генерацію картинок, стійких до автоматичного розпізнавання, ми розглянемо в наступній статті.
# 10097; Створення дизайну сайтів, тільки дизайн без верстки, макет PSD - від 5 до 10 т.р.
Портфоліо і приклади робіт. Дизайнер: [email protected] Skype: tanditl Любов (Teolinka)