Захистіть шкідливих ботів від розміщення спаму


15

Я пам’ятаю сайт, закритий через нецільове використання, і мені цікаво, чи є у ботів його частина. Якщо бот розміщує щось на своєму сайті, то якими способами я можу боротися з ним? Я думав встановити деякі файли cookie та змінити файли cookie через JavaScript + часову позначку та підпис (тому вчорашні файли cookie не можна використовувати сьогодні та наступний тиждень).

Я впевнений, що більшість людей / ботів просто використовуватимуть інший сайт замість того, щоб увімкнути JavaScript у своєму боті.

Що ще можу зробити? Я думаю, щоденний ліміт POST та медовий лот для загальних ботів, які просто випадковим чином розміщують спам.

Відповіді:


13

Ви можете зробити кілька речей, зокрема:

  1. Поставивши підроблене поле, яке побачать лише боти. Тоді, якщо це поле буде подано з рештою форми, ви можете проігнорувати його (при бажанні заборонити їх). Ви також можете захопити поганих ботів, які переходять за прихованим посиланням .

  2. Використовуйте CAPTCHA, як reCAPTCHA

  3. Використовуйте поле, яке вимагає від користувача відповіді на таке питання, як 5 + 3. Будь-яка людина може відповісти на нього, але бот не знатиме, що робити, оскільки це автоматично заповнення полів на основі імен полів. Таким чином, це поле буде або неправильним, або відсутнім, і в цьому випадку подання буде відхилено.

  4. Використовуйте маркер і введіть його в сеанс, а також додайте його до форми. Якщо маркер не подано з формою або не відповідає, він автоматизований і може бути проігнорований.

  5. Шукайте повторні подання з тієї самої IP-адреси. Якщо у вашій формі не повинно надходити занадто багато запитів, але раптом це, напевно, потрапив бот, і вам слід подумати про тимчасове блокування IP-адреси.

  6. Використовуйте Askimet . Це чудово для виявлення спаму.


5
+1 - І в ідеалі ви будете реалізовувати комбінацію перелічених вище пропозицій зручним для користувача способом (наприклад, якщо у користувача відключений Javascript і тому не вдалося встановити аутентифікацію на основі Javascript, подайте користувачеві CAPTCHA)
danlefree

6

Джон Конде окреслює багато хорошого підходу. Проблема з вибором методики "боротьба з ботом" та "спам" - балансування ефективності та зручності. Було б дуже незручно заповнювати CAPTCHA кожного разу, коли ви хочете опублікувати коментар або повідомлення, але якщо вам потрібна лише CAPTCHA під час реєстрації, то іноді це не стримує спамерів.

Деякі з пасивних прийомів є хорошою альтернативою, оскільки не потребують людських дій. Проблема полягає в тому, що боти стають все складнішими, і якщо боти можуть вирішувати CAPTCHA, то вони, безумовно, можуть обробляти JS та CSS. Тому вам потрібно проявити трохи винахідливості, наприклад, використовувати менш очевидні CSS, щоб приховати свої бот-пастки поля.

Але виходячи з вашого питання, я думаю, ви, мабуть, розумієте, що сенс полягає не у створенні захищеного від ботів сайту, а просто у створенні достатньої кількості стримуючих факторів, що користувачі ботів просто обиратимуть інші простіші цілі. Отже, що тут потрібно, буде залежати від сайту до сайту, і, ймовірно, знадобиться тестування та перевірка помилок. Я спробував би найменш нав'язливих прийомів.

Нарешті, ще одним способом дезактивації вашого веб-сайту є використання одночасних модерацій для видалення будь-яких поданих ботом коментарів або поданих вручну спаму, який прослизає.


чи можете ви пояснити ідею поміркованості однолітків? Чи передбачає це звичайні користувачі, які отримують права модератора, або як я маю це уявити?
0xC0000022L

@STATUS_ACCESS_DENIED: вибачте за несвоєчасну відповідь, але поміркована модерація - це щось на зразок digg, slashdot, stackexchange тощо, де користувачі можуть модерувати вміст на сайті, надаючи певну форму позитивних чи негативних відгуків. Таким чином, ви можете автоматизувати систему таким чином, що коли достатня кількість користувачів надає негативні відгуки про частину вмісту, вона автоматично приховується або позначена для огляду. На таких сайтах, як StackExchange, користувачі також можуть позначати коментарі / відповіді як спам, доводячи це до відома адміністраторів. Це зменшує роботу, яку повинні виконати платні адміністратори.
Lèse majesté

Спасибі. Це, звичайно, працювало б лише на сайтах із високим трафіком, де достатньо користувачів може потурбуватись, щоб надати відгуки;)
0xC0000022L

1

Як згадував Джон Конде у своєму номері №1), і ви вже згадували, сотник може працювати дуже добре для більшості випадків та більшості веб-сайтів. Якщо це коли-небудь втручається ботом, ви можете просто скористатися одним із інших методів, про які також згадував Джон. Але якщо чесно, якщо на вашому веб-сайті низький або середній трафік, це повинно зробити свою справу.

Приклад, один із моїх улюблених:

<form action="/process-form">
<input name="email" placeholder="Enter Your Email">
<input name="email_address" placeholder="Enter Your Email" style="display:none;">
<input type="submit" value="Submit"></form>

Тепер, коли форма подається, надзвичайно високий відсоток ботів заповнить і "електронну пошту", і "адресу електронної пошти", але люди заповнять лише те, що бачать, "електронну пошту", а не "адресу електронної пошти". Тож у коді `/ process-form 'ви просто повинні перевірити, чи адреса email_address (не) порожня для перевірки.

Простий і ефективний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.