Які існують варіанти виявлення веб-сканерів, які не хочуть виявляти?
(Я знаю, що методи виявлення лістингу дозволять розумному програмісту-скаулеру зробити кращого павука, але я не думаю, що ми коли-небудь зможемо заблокувати розумні стелс-сканери, лише ті, які роблять помилки.)
Я не кажу про приємних сканерів, таких як googlebot та Yahoo! Сірка. Я вважаю бота приємним, якщо він:
- ідентифікує себе як бот у рядку агента користувача
- читає robots.txt (і підкоряється йому)
Я кажу про поганих сканерів, ховаючись за звичайними користувачами-агентами, використовуючи свою пропускну здатність і ніколи нічого не даючи мені взамін.
Існує декілька трапок, з яких можна скласти оновлений список (спасибі Кріс, гс) :
- Додаючи в каталог robots.txt лише вказаний каталог (позначений як заборонений),
- Додавання невидимих посилань (можливо, позначених як rel = "nofollow"?),
- style = "дисплей: немає;" на посилання або батьківський контейнер
- розміщений під іншим елементом з більш високим z-індексом
- виявити, хто не розуміє великої літери,
- виявити, хто намагається розмістити відповіді, але завжди провалює Captcha.
- виявляти запити GET до ресурсів, призначених лише для POST
- виявити інтервал між запитами
- виявити порядок запиту сторінок
- виявити, хто (послідовно) запитує https-ресурси через http
- виявити, хто не запитує файл зображення (це в поєднанні зі списком користувальницьких агентів відомих браузерів, що підтримують зображення, працює напрочуд приємно)
Деякі пастки спрацьовували б як «добрі», так і «погані» боти. ви можете комбінувати їх із білим списком:
- Це запускає пастку
- Це запит
robots.txt
? - Це не викликає іншої пастки, оскільки вона підкоряється
robots.txt
Ще одна важлива річ тут:
Зауважте, що незрячі користуються пристроями зчитування екрана: дайте людям спосіб зв’язатися з вами або вирішіть Captcha (без зображення), щоб продовжувати перегляд.
Які існують методи автоматичного виявлення веб-сканерів, які намагаються замаскувати себе нормальними людськими відвідувачами.
Оновлення
Питання не в тому, як я можу спіймати кожного сканера. Питання полягає в тому, як я можу максимально збільшити шанс виявлення сканера.
Деякі павуки справді хороші, і насправді розбирають і розуміють html, xhtml, css javascript, VB скрипт тощо ...
У мене немає ілюзій: я не зможу їх перемогти.
Однак ви були б здивовані, наскільки дурні деякі сканери. З найкращим прикладом дурості (на мою думку): передайте всі URL-адреси в малі регістри, перш ніж їх запитувати.
А потім є ціла купа сканерів, які просто "недостатньо хороші", щоб уникнути різних захоплень.