Як я можу заблокувати зловмисників, які нескінченно намагаються зареєструвати більше облікових записів?


41

У мене безкоштовний сайт з відкритою реєстрацією; кожен може зареєструватися, і я не в змозі це змінити. Однак облікові записи повинні бути затверджені адміністратором після заповнення профілю, тому я маю доступ до різноманітної інформації для виявлення дублюючих користувачів (дата народження, коментар "самовведення", електронна адреса, фотографії, місцезнаходження в профілі, геолокаційний IP , IP-адреса тощо)

Останнім часом на сайт потрапили атаки одного користувача, який надзвичайно зловживає і, схоже, має необмежений час для реєстрації декількох облікових записів. Ці облікові записи можна заблокувати порівняно легко, але це велика робота для адміністратора (мене), і я боюся, що я пропущу один із законних акаунтів (цей користувач реєструє близько 6 облікових записів на день).

Я вже:

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

Чи можу я щось зробити з файлами cookie тощо, щоб ще більше ускладнити реєстрацію цього користувача?

Це сайт Drupal 7.

EDIT: У моєму випадку це людина, а не бот. Але відповіді на бота корисні тим, хто спеціально націлений на спамери.


Єдине, що я можу придумати, - це ті набридливі капчу, які насправді важко читати, оскільки деякі букви / цифри, на вашу думку, можуть бути двома речами, і вам потрібно спробувати, як 5 разів, щоб правильно його відгадати. З негативної сторони ви будете дратувати всіх інших, lol.
Без зачистки

13
drupal.org/project/misery, якщо все інше не вдається.
Найл Мерфі

7
Насправді перші два використані вами рішення є досить поганими ідеями. IP-адреси дуже неадекватні, однозначно ідентифікуючи навіть всю мережу, не маючи на увазі конкретного комп'ютера та не заважайте конкретному користувачеві! Зовсім не рідкість, коли користувач обмінюється пристроєм з багатьма іншими користувачами, де цей пристрій знаходиться в мережі з багатьма іншими пристроями, які спільно використовують одну IP-адресу, яку регулярно перерозподіляє постачальник послуг, для різних клієнтів. Заборона цілих наборів імен домену електронної пошти ще гірша. Ви ризикуєте заблокувати законного користувача.
JBentley

3
Пробуючи поради у відповідях, я б запропонував ніколи не робити життя ваших хороших користувачів менш приємним заради покарання поганих користувачів. Якщо ви це зробите, погані користувачі виграли, і ви ризикуєте втратити хороших користувачів.
рубіж

Відповіді:


51

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

Те, що я робив раніше, не характерне для Drupal, - це дозволити користувачеві реєструватися. Потім я саботував його конкретний рахунок:

  1. Я посипав if ($someuser) { sleep(rand($base, $base*2)) }кодом, де $baseб щодня збільшувався. Я переконався, що у нього багато тайм-аутів.
  2. Я би скинув N% своїх посад, де N почався вище 50% і звідти лише збільшився. Якщо в публікації були певні ключові слова, вона буде негайно відхилена.
  3. Я випадково відкидаю правила CSS, щоб сторінка погано відображалася. Знову ж таки, тяжкість зростала б у часі.

Це вимагало більше зусиль з мого боку, але відповідно до порад Sun Tzu я обумовлював користувача ненавидіти мій сайт . Я хотів, щоб він відчував не те, що він нас дратує, а швидше, щоб його дратували затримки і явні помилки. Йому було потрібно менше тижня, щоб відмовитись від нас.

EDIT : У коментарях користувач rooby згадує модуль Misery, який базується на тій же концепції:

  1. Затримка : Створіть затримку випадкової довжини, надаючи появу повільного з'єднання. (за замовчуванням це відбувається 40% часу)
  2. Білий екран : представіть користувачеві білий екран. (за замовчуванням це відбувається 10% часу)
  3. Неправильна сторінка: перенаправлення на випадкову URL-адресу в попередньо визначеному списку. (за замовчуванням це відбувається 0% часу)
  4. Випадковий вузол : перенаправлення на випадковий вузол, доступний користувачеві. (за замовчуванням це відбувається 10% часу)
  5. 403 Заборонено доступ : Повідомте користувача про помилку "Заборонено доступ". (за замовчуванням це відбувається 10% часу)
  6. 404 Не знайдено : Повідомте користувача про помилку "Не знайдено". (за замовчуванням це відбувається 10% часу)
  7. Форми не надсилаються : перенаправляйте назад до форми під час перевірки, щоб запобігти надсиланню. (за замовчуванням це відбувається 60% часу) Примітка: Іноді певні форми перевіряють, залежно від того, яка кнопка була натиснута, у цих випадках це не працюватиме.
  8. Збій IE6 : Якщо користувач використовує Internet Explorer 6, це перерве браузер. (за замовчуванням це відбувається 0% часу)
  9. Спам : Замініть вміст вузла заданим словом. (за замовчуванням це відбувається 10% часу)
  10. Вихід : Вийдіть користувача. (за замовчуванням це відбувається 10% часу)

8
Я думаю, що це теоретично чудово, але думка про жорстке кодування $someuserкожного разу, коли вони створюють новий обліковий запис, змушує мене дурити. Все-таки чудова ідея. Можливо, просто додати поле до таблиці облікових записів, як trollстовпець. Якщо це 1, зміни впливають. Потім додайте простий інтерфейс для позначення когось як троля. Принаймні, це трохи простіше, ніж жорстке кодування імені користувача / імені користувача / електронної пошти / тощо. щоразу, коли вони реєструються під новим обліковим записом. Однак, наголошуючи на цьому точно.
Нейт I

5
@NateI ви можете зробити його багаторазовим використання. if (hellbannedUsers.contains($someuser))є на крок краще. Мені просто не подобається, наскільки це домашня логіка, в першу чергу, але це можна принаймні зробити багаторазовим.
djechlin

3
@djechlin Звичайно, це може бути багаторазово використане, звідси мій власний коментар щодо того, щоб зробити його крок далі з таблицею в БД.
Нейт I

3
Можливо, вас зацікавить бідний модуль, щоб заощадити собі кодування.
рубіж

7
Чудова відповідь. Варіант цього варіанту полягає в тому, щоб дозволити публікацію тролів і показати публікації цьому користувачеві, але приховати їх для всіх інших користувачів.
zelanix

30

Електронна пошта ISP кривдника - Вони будуть покласти кінець його!

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

Ви можете знайти провайдера, зробивши пошук IP або безпосередньо з ARIN за адресою https://whois.arin.net/ui, або інший сервіс, який просто використовує їх для Whois. Більшість користувачів матимуть власний Інтернет-провайдер для власника IP, але деякі (зазвичай великі корпорації) володіють IP-адресою самостійно. Так чи інакше, ви дізнаєтесь, хто є власником IP-адреси, а звідти ви можете їх переглянути та отримати електронну адресу зловживань (іноді вони вказують фактичну електронну адресу зловживань в інформації WHOIS, що чудово) для надсилання. ваш електронний лист. Будьте добрі та ввічливі з провайдером. Не пишіть епічного роману - нехай це буде просто. Щось на кшталт: "Цей ip зазнає цькування себе та користувачів мого веб-сайту, будь ласка, перегляньте журнали" буде достатньо. Вони бачать тисячі таких на день, вони не хочуть читати оповідання.

Раніше я був інженером мережі в Інтернет-провайдері. Ми отримали незліченну кількість повідомлень про домагання за таку саму поведінку. Щойно абонент отримує телефонний дзвінок, вони припиняють приблизно 90% часу. Якщо це продовжиться, може розпочатися юридична дія, що означає, що більшість провайдерів вживають дуже серйозних дій.

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

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

Бічна примітка

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

У людей є ця божевільна думка, що просто тому, що хтось використовує проксі, вони не виявляються. Це помилково. Проксі-сервіси зазвичай дотримуються тих самих правил, що і всі інші (звичайно, є винятки). Коли вони отримують повідомлення про зловживання, вони піклуються про нього так само, як робить Інтернет-провайдер.

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


2
Це єдине фактичне рішення . Все інше, що було запропоновано, видається способом вирішення, а не рішенням.
резюме

Tor також може бути проблемою в цьому плані, але якщо у вас справді виникають проблеми з цим, завжди є можливість блокувати трафік, що походить тільки від вихідних вузлів Tor . (Останнє зводить заставу до мінімуму.)
CVn

Чи можете ви дати мені зрозуміти, скільки часу може тривати цей процес? Я надіслав інформацію 10 днів тому, і я ще не маю відповіді будь-якого типу, навіть підтвердження свого звіту.
Патрік Кенні

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

17

У своєму запитанні ви не згадуєте про наявність капчу. Можливо, цей ненадійний користувач - бот? Я здогадуюсь, що ви вже маєте капчу і цей користувач насправді людина.

Але ... якщо це не так, я б рекомендував:

reCAPTCHA

Використовує веб-сервіс reCAPTCHA Google для вдосконалення системи CAPTCHA та захисту електронних адрес.

введіть тут опис зображення


9

Пекло / тіньбан

Оскільки заблокувати людину від створення нових облікових записів для заміни заблокованих майже неможливо, дещо популярним рішенням цієї проблеми є так званий пекла ( http://www.urbandictionary.com/define.php?term=hellban ) або shadowban , де ви реалізуєте функцію, яка ізолює певні облікові записи від усіх інших, не даючи зрозуміти, що їх заборонили.

Наприклад, ви переконайтеся, що вони відчувають, що їх досвід справжній, і вони можуть продовжувати користуватися одними і тими ж обліковими записами, але переконайтесь, що будь-яка їх публікація чи діяльність видно лише для облікових записів, у яких не встановлено певні облікові записи та будь-які акаунти (або незареєстровані, у ситуаціях), які діляться IP та / або файлами cookie з обліковим записом. Якщо користувач продовжує вести тролі, але не отримує жодної відповіді, він з часом піде.


Як це реалізувати в Drupal 7?
reinierpost

1
@reinierpost - Печера є одним із варіантів здійснення цього
BryanH

7

За пропозицією No Sssweat, я ставлю це як відповідь замість коментаря, щоб більше людей бачили це.

Drupal.org/project/misery робить досить непогану роботу, щоб роздратувати лайно користувача з допомогою восьми різних методів. Випадкові тайм-аути, виходи, випадкові переадресації тощо, і частота може змінюватися.

Проста версія приємного написання dotancohen вирішити проблему.


6

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


5

Це насправді неможливо.

Ви не можете зупинити людину знову і знову. Єдиним , що ви можете зробити , це затвердіти процес реєстрації і подвійний / потрійний перевірку їх посвідчення особистість (через адресу електронної пошти та обліковий запис Google і facebook рахунки і LinkedIn рахунку і номер телефону, і так далі) і співвіднести кожна людина з певним ID цим агрегатним всі ці подробиці.

Конкретна людина може вибрати іншу мережу через веб-проксі, створити багато @email, відкрити кілька облікових записів facebook / google / LinkedIn тощо, але ви ніколи не зможете зупинити цю реєстрацію знову (якщо ви не перевірите її ДНК).

Ваш єдиний вибір - посилити процес реєстрації.


2
Як я вже говорив, вимагайте від своїх майбутніх нових користувачів зв’язати їх обліковий запис з унікальним facebook-акаунтом та унікальним обліковим записом google та унікальним обліковим записом LinkedIn та унікальним номером телефону, на який ви надсилаєте SMS. Ти в дуже холодному становищі! Ви не можете без дійсно дорогих засобів запевнити, що користувач зареєструється лише один раз. Більше того, єдині засоби, якими ви можете скористатися, будуть дратувати ваших майбутніх користувачів (хто добре пов'язує обліковий запис ggl / SO / fb / LinkedIn / GH + надсилати свій ідентифікатор поштою, просто для створення нового облікового запису?)
Auzias

11
Це швидкий спосіб зменшити також кількість справжніх користувачів.
Tom.Bowen89

3
Ви стверджуєте, що в гіршому випадку це неможливо , тобто якщо розширене розвідувальне агентство з мільярдами доларів вийде вам. Є дуже хороший шанс десь із ОП зіткнутися з нахабним 11-річним. Тож ваша відповідь є і трохи непрактичною, і ІМО оманливою.
djechlin

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

1
Я знаю;) або не мають Google, ні LinkedIn
Auzias

4

За пропозицією No Sssweat, ви можете використовувати reCAPTCHA. Але якщо ви не хочете дратувати законних користувачів, то можете спробувати модуль Honeypot . Це дає можливість мати додаткове поле, яке не слід заповнювати (боти AFAIK можуть заповнювати всі поля) або обмежити час.

Документація означає:

Honeypot використовує як опеньки, так і часові позначки, щоб утримати спам-ботів від заповнення форм на вашому Drupal-сайті (докладніше читайте тут). Ці методи ефективні проти багатьох спам-ботів і не такі нав'язливі, як CAPTCHA або інші методи, які карають користувача [YouTube].

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

Spambot захищає форму реєстрації користувача від спамерів та спам-ботів, підтверджуючи спроби реєстрації проти онлайн-бази даних Stop Forum Spam (www.stopforumspam.com). Він також додає деякі корисні функції, які допомагають мати справу з обліковими записами спаму.


3
Це працює для спам-ботів, а не для людей.
користувач253751

3

Є відповідь на питання - хоча громада може вважати це образливим. Я не знаю чому, окрім витрат, що шлях не брали частіше.

Надішліть листа про припинення та відмову особі, яка виїжджає на ваш сайт і порушує Розділ XVIII Кодексу США, зловживання комп'ютерами, шахрайство та зловживання.

Якщо вони не припиняються, заробляйте грошові кошти та подайте до суду. У середині 1990-х у мене був перший випадок у WDMO, коли єдиного Інтернет-провайдера для району Канзаса було взломано 3 підлітки. Я зв’язався з родинами (вони вкоренили один із серверів і були досить дурними, щоб зберігати свою заявку, щоб приєднатися до груп «Warez» з їх справжніми іменами та адресами у прихованому підкаталозі) і попросили їх зупинити хлопців-підлітків від цього. Вони відмовились.

У скарзі на 54 сторінки я повинен був пояснити: нещодавно призначеному судді Інтернет-провайдери, Інтернет, перевищення доступу тощо.

Я був більше, ніж адвокат, до мене було доступно акаунт (слава Богу, а не клієнтський рахунок - Список іржі), і мене поставили галочку. Я доручив батькам (єдиний спосіб поїхати там, де обвинувачені були неповнолітніми в цивільній справі) і заявив, що батьки передали небезпечну інструментарію в руки неповнолітніх без належного нагляду і що неповнолітні займалися передачею викраденого програмного забезпечення, і дитяче порно (Так, 16-річні хлопці, які фотографують своїх 16-річних GF, це "порно для дітей"). Я торкнувся політики домовласників, і у мене був засіб захисту, який суди в ті часи навіть не розглядали: довічна заборона користуватися комп’ютерами для підлітків.

Він вирішився протягом тижня після передачі відкриття.

Ви спробували все інше: забийте це маленьке лайно гамантектомією. Будьте обережні, щоб вибрати адвоката, який знає, що це, а не асоціюється з "великою фірмою", де вам виставлять рахунок до смерті.

Поміркуйте, як може діяти ухвала суду, що забороняє ривок отримати доступ до вашого сайту: S / Він заборонений - ви знаходите IP-адресу його / її, що порушує Постанову Суду - надішліть його своєму адвокату, і він подає клопотання до суду, показуючи порушення Порядку, і Суд відповість наказ про причину, чому відповідача не слід утримувати з повагою до суду.

Починається напад з інших сайтів / IP-адрес - повідомте свого захисника - і відповідь може включати дзеркальне відображення комп’ютерів підсудних, наказ, що зупиняє відповідача від доступу до Інтернету, і, виявивши, що відповідач порушив наказ проксі. , Суд накладе санкції.

Зрештою, ривок, можливо, обмежився тим, що назавжди блокується від Інтернету. Якщо ви справді розлючені після всього цього, і хочете бути впевнені, що відповідач не працює в Інтернеті, найміть ПІ, щоб слідкувати за відповідачем протягом тижня або десяти днів (не дешево) і якщо він / він має доступ до Інтернету від Starbucks - або у McD's у вас є: повернутися до судді.

Остаточний наказ не є вірогідним і відбуватиметься лише з переважними доказами того, що підсудний звичайно порушував накази суду: ні смартфонів, ні VOIP, ні кабельного або супутникового телебачення (Інтернет доступний, і він виявив повне зневага до Закон, тому нічого, що вони можуть зламати, щоб отримати доступ, не дозволено), немає Інтернету (було б добре, якби це була довічна заборона - швидше за все, немає), немає Інтернет-речей і, зрештою, ніяких обчислювальних пристроїв.

Якщо відповідач заробляв собі на життя в технічному секторі - у них є рови, щоб копати, і гамбургери для перекидання.

Ось як закінчити це ядерним варіантом.


@ Pierre.Vriens Це цікава інформація в будь-якому випадку, і поки я перебуваю в Токіо, моя компанія знаходиться в США, як і зловживаючий користувач.
Патрік Кенні

Добре, вибачте за мій коментар (я видалив попередній коментар уже зараз) ... я дивлюся на це з окулярами EUR, хоча ...
Pierre.Vriens

2

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


1
Відчайдушні часи вимагають відчайдушних заходів, це було б так дратує. Я можу додати його переадресацію до Ріка Ролла, lol.
Без розмивання

1
Це призведе до того, що його заблоковано
Анхель

2

Я написав модуль спеціально для подібних ситуацій. Він називається Spaces Enforced і його можна знайти тут , і він працює, блокуючи будь-яку особу, яка реєструється, ім’я якої не містить щонайменше 1 пробілу. Його можна додатково налаштувати, і ви можете вибрати, який символ повинен з’являтися скільки разів. Він також має ступінь спадкоємності близько 100%

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