Як захиститися від спаму в PHP - PHP та MySQL програмування
Зміст
Захист сайту від спамерів за допомогою PHP
Основним методом боротьби з явищем такого виду спаму є створення всіляких перевірок на людяність, тобто визначення, хто вводив дані у форму, людину чи програму. До таких перевірок можна віднести:
- прохання ввести в текстове поле номер або слово з картинки
- ввести відповідь на загадку або будь-яке питання
- натиснути одну з кількох кнопок (input type="button")
- вибрати одну з кількох правильних відповідей (input type="radio")
- вибрати кілька відповідей ( )
- …
Незважаючи на такий значний список методів боротьби зі спамом, зазвичай застосовують тільки перший пункт, тобто, використовують зображення з текстом або цифрами.
Алгоритм звіряння даних у цьому випадку здійснюється декількома способами:
- У формі знаходиться один і більше прихованих елементів ( ), Що містять будь-які значення і поле для введення даних.
- Значення, що генерується випадковим чином, зберігається в таблиці і має невеликий термін життя, при збігу зі значенням з текстового поля знаходиться. У формі цей запис видаляється.
- Використання Cookies, тобто збереження правильної відповіді у користувача (вкрай не зручно і не завжди працює).
- Як код підтвердження використовуються перемішані числа поточної дати.
- Попередній варіант, але розбавлений латинськими літерами.
- Фантазія розробників безмежна…
І так, почнемо писати наш PHP код, а то я аж надто заглибився в теоретичну частину питання. Створюємо новий PHP файл і для початку напишемо в ньому функцію, яка «вигадуватиме» код підтвердження з поточної дати, виглядатиме вона будеприблизно так:
Тепер, коли у нас вже готова функція для генерації цифрового коду підтвердження, можна написати функцію для генерації цього коду на зображенні взятому з файлу, а потім виведення картинки з кодом підтвердження в браузер. Виглядає ця функція так:
Для того, щоб усе працювало, на початку PHP скрипту пишемо:
Перевірка введених даних
Тепер нам потрібна функція для перевірки введених даних, вона буде реалізована за тим же принципом, що і generate_code, її потрібно помістити в окремий PHP скрипт, який здійснюватиме перевірку введених даних:
У цей же файл, нарешті додайте функцію generate_code(). І на закінчення прикладна схема реалізації:
Додаткова інформація на тему
Стаття про те, як захищатися від спаму і не припускатися помилок, щоб ваш email не потрапляв у email розсилку
Опис основних та дієвих методів захисту своїх сайтів від злому третіми особами
Тут як навчитися себе захищати від шпигунських програм (програмного забезпечення)
Декілька простих порад на тему про те, як зберегти свій пароль від цікавих очей і рук