# Handling trolls with multiple accounts over VPNs

**URL:** https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489
**Category:** Feature
**Created:** [8월 31, 2016, 12:41오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489 "2016-08-31T12:41:51Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [9월 9, 2017, 9:29오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/42 "2017-09-09T09:29:30Z")

</div>

If you feel it’s so simple, feel free to propose it as a plugin in #Marketplace with a budget.

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [9월 10, 2017, 6:29오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/43 "2017-09-10T06:29:41Z")

</div>

Could pull some estimate out of a hat, that how complex this kind of implementation would be? I am not even sure if cookie tagging is the right approach, there might something more clever, but it is a topic worth discussing as IP logs are nowadays white noise and disposable emails are available for free (for exp. [Outlook.com](http://Outlook.com) offers email aliases).

Moderation is a very time consuming part of community management. Improving the available tools would actually be something of real value. Maybe we could crowd fund it as a community, if there is interest. As a non-profit our financial resources are very limited, but with allies we could pull something off.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [7월 24, 2018, 7:58오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/44 "2018-07-24T19:58:49Z")

</div>

> [@mpalmer](#):
>
> At any rate, after some discussion internally, this isn’t something we (CDCK) are going to be able to work on any time soon (many irons in the fire and all that), however a plugin from one or more community members (either written by or sponsored by) would, I’m sure, be appreciated by many. Or at least that subset of site owners plagued by slightly-smarter-than-the-average-bear trolls, anyway.

see [Build a browser fingerprinting plugin](https://meta.discourse.org/t/build-a-browser-fingerprinting-plugin/93037)

---

<div class="post-metadata">

### Author: ![rmens](https://avatars.discourse-cdn.com/v4/letter/r/3ab097/32.png) [@rmens](https://meta.discourse.org/u/rmens)
#### Post date: [9월 25, 2018, 1:49오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/46 "2018-09-25T13:49:50Z")

</div>

A neat feature would be to require SMS verification on registration. So one phone number per account. A new mobile phone number is way harder to get than another mailbox.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [9월 25, 2018, 1:56오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/47 "2018-09-25T13:56:30Z")

</div>

> [@rmens](#):
>
> A new mobile phone number is way harder to get than another mailbox.

Not really. There once was a time that I created digital ocean and mailgun accounts for my clients and used some app to generate phone numbers to recieve a text. It was tedious, but neither difficult nor expensive.

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [9월 25, 2018, 2:04오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/48 "2018-09-25T14:04:26Z")

</div>

Tedious would probably put some sort of a speedbump in front of your “bored asshole” types, at least. Can’t imagine phone number verification would ever go into core, though, too much variance in service provider, et al. Probably wouldn’t be hard to build a plugin for it, though, if anyone was feeling frisky.

---

<div class="post-metadata">

### Author: ![Gulshan\_Kumar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gulshan_kumar/32/119562_2.png) [@Gulshan\_Kumar](https://meta.discourse.org/u/Gulshan_Kumar)
#### Post date: [6월 19, 2019, 6:31오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/49 "2019-06-19T06:31:32Z")

</div>

> [@carmalonso](#):
>
> Has anyone got any solutions on how to tackle trolls?

- Enable `must approve users` in settings for all new users. Reject all suspicious sign up that comes from VPN, temp-email or anonymous name.

- Require restrict approval for all new users.  

- Whitelist certain e-mail providers to avoid chances of using temp-emails.

- Blacklist those e-mail from which troll is generally coming.

- Set min trust value for message

![image](https://global.discourse-cdn.com/meta/original/3X/b/9/b980344dda41844ffed6039d0ab2772098467ed0.png)

- Require approval/Block based on certain offending keywords

- Blacklist offensive username.

- Block VPN server IP by [AS Num](https://ipinfo.io/AS14061). For example, in screenshot I have shown DO.  

- Ask for legal Identity and Address proof as image URL hosted by them in Sign up form under text field. 🔥

---

<div class="post-metadata">

### Author: ![HarryL](https://avatars.discourse-cdn.com/v4/letter/h/838e76/32.png) [@HarryL](https://meta.discourse.org/u/HarryL)
#### Post date: [6월 25, 2019, 8:42오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/50 "2019-06-25T20:42:24Z")

</div>

> [@DeanMarkTaylor](#):
>
> One somewhat simpler stepping stone would be to keep track of the last `n` IP addresses used for an account.

I’ll echo this being something that would be useful in trying to detect, and deal with, banned members coming back as new accounts.

It would be very helpful if the system would flag (simply for attention) mods when/if any account logs in with an IP address that is the same as any other account. A match not just for Registration and Last IP, but for any IP that’s ever been recorded.

Could have whitelist to allow admins to take out IP’s that would result in too many false positives.

But, otherwise, having this sort of automatic notification of common IP address for all IP’s ever recorded for all accounts, would be very helpful in letting mods know which accounts to follow up with special attention.

Very little can be done when a troll is not only motivated enough to keep coming back, but is fastidious enough to cover his tracks meticulously.

But trolls seem to pretty much always slip up _at some point_.

Currently, it requires mods manually checking Last IP frequently and being lucky enough to catch the IP address commonality in real-time. We catch people like this quite a bit, but I imagine that it’s just the tip of the iceberg.

---

<div class="post-metadata">

### Author: ![RobinTS](https://avatars.discourse-cdn.com/v4/letter/r/7ea924/32.png) [@RobinTS](https://meta.discourse.org/u/RobinTS)
#### Post date: [8월 27, 2019, 9:45오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/51 "2019-08-27T21:45:24Z")

</div>

So we’re currently dealing with a _problem_ user who creates a fake account, then gets blocked, then changes their IP with a VPN, creates a new email and then creates a new account.

I have a different suggestion, which I’m not sure is feasible:  
A setting that blocks ‘anonymous’ IP address. IP’s from VPN services for example.

Discourse currently uses MaxMindDB to do IP lookups and I see that MaxMindDB has an anonymous ip [database](https://www.maxmind.com/en/solutions/geoip2-enterprise-product-suite/anonymous-ip-database). I honestly don’t know anything about the MaxMindDB integration though.

If this were possible it would at least stop users from creating multiple accounts using a VPN to mask their IP. Should cut down trolling a lot.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [8월 28, 2019, 1:34오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/52 "2019-08-28T01:34:53Z")

</div>

> [@RobinTS](#):
>
> Discourse currently uses MaxMindDB to do IP lookups and I see that MaxMindDB has an anonymous ip [database](https://www.maxmind.com/en/solutions/geoip2-enterprise-product-suite/anonymous-ip-database).

Ohhh interesting. As a first step can we show whether or not Maxmind tagged that IP as anonymous here @nbianca? Could you take 30 minutes (when you’re back, of course) and see if it’s even possible?

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/7/57dda92fd6235c6a9d8e4ad35af810cb6c136aed.png)

However @RobinTS if you mean a _different_ or _additional_ maxmind database, it’s unlikely we would pull that in. I was wondering if “anonymous” is a designation in the existing database, like the geolocation.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [8월 28, 2019, 2:49오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/53 "2019-08-28T02:49:44Z")

</div>

This linked database is paid and “contact us” pricing level, so not something we could ever ship.

---

<div class="post-metadata">

### Author: ![RobinTS](https://avatars.discourse-cdn.com/v4/letter/r/7ea924/32.png) [@RobinTS](https://meta.discourse.org/u/RobinTS)
#### Post date: [8월 28, 2019, 12:41오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/54 "2019-08-28T12:41:04Z")

</div>

Ah that’s a pity. I’ve also seen some APIs out there that you can use to check for pretty much the same thing. I’ve been using [this](https://www.ipqualityscore.com) one to manually look up the IP addresses of new users. I’m sure there are others out there that may be better. Sounds more like plugin territory now though.

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [8월 28, 2019, 9:48오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/56 "2019-08-28T21:48:17Z")

</div>

> [@RobinTS](#):
>
> A setting that blocks ‘anonymous’ IP address. IP’s from VPN services for example

It may have to be noted that some legitimate users use VPNs (I don’t know exactly the proportion, but I do know I am usually one of them). Totally blocking these IPs would have side effects for them ☹

---

<div class="post-metadata">

### Author: ![csmu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/csmu/32/124581_2.png) [@csmu](https://meta.discourse.org/u/csmu)
#### Post date: [8월 29, 2019, 9:19오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/57 "2019-08-29T21:19:50Z")

</div>

We did a small project a while back in php where we determined for market research purposes where if the verbatim comments where ‘positive’ or ‘negative’. It worked a treat for our custom Net Promoter Score (NPS) results.

Would there be a way to profile the new user from the language they use? Something like … to flag users who have a degree of the same language as specific silenced users.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [8월 29, 2019, 11:20오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/58 "2019-08-29T23:20:32Z")

</div>

> [@csmu](#):
>
> Would there be a way to profile the new user from the language they use?

I personally feel this would be quite viable, _provided_ the user types enough content over a reasonable amount of time. If they only post terse sentences, it’d be tougher.

(Note that I specifically mean “match one unknown user to an existing user based on the words they use, how often and in which order they use them”)

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [8월 29, 2019, 11:32오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/59 "2019-08-29T23:32:43Z")

</div>

The perspective API plugin will already analyze and store a score for posts, and a [data explorer](https://meta.discourse.org/t/32566?silent=true) query can give you the average score for users and filter only the recent ones.

If someone tries this and proves it successful we can look into automating it on the plugin.

---

<div class="post-metadata">

### Author: ![nbianca](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nbianca/32/157984_2.png) [@nbianca](https://meta.discourse.org/u/nbianca)
#### Post date: [9월 6, 2019, 7:41오전 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/60 "2019-09-06T07:41:01Z")

</div>

As @Falco said, that is a paid solution. Instead one could use [these IP lists](https://github.com/ejrv/VPNs) to ban VPN users (or we could add that one to our core to identify anonymous IPs).

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [10월 30, 2019, 7:18오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/61 "2019-10-30T19:18:13Z")

</div>

오늘 저는 Meta에서 로그아웃을 했고, 다시 로그인하려고 했습니다 (처음에는 비밀번호를 종이에 적어 두었었거든요. 지금은 그걸 어딘가에 보관해 두었고, 복사/붙여넣기 로그인 테스트를 통해 비밀번호를 올바르게 입력했는지 확인하고 싶었습니다). 그런데 " **해당 IP 주소로는 Mevo 계정으로 로그인할 수 없습니다**"라는 메시지가 떴습니다 (몇 주 동안 게시물을 올리던 바로 그 IP 주소이고, 방금 로그아웃을 한 것이죠 😉 ). 이 접속은 VPN을 통해 이루어진 것입니다. 그래서 일부 VPN 주소가 이제 차단된 건가요? 이건 Discourse 전체에 해당하는 건지, 아니면 Meta에서만 그런 건가요?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [10월 30, 2019, 8:08오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/62 "2019-10-30T20:08:32Z")

</div>

어떤 이유로 인해 IP가 차단되었습니다. 이전에 해당 IP에서 문제가 발생했던 사용자가 있었을 가능성이 높습니다.

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [10월 30, 2019, 8:18오후 UTC](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489/63 "2019-10-30T20:18:50Z")

</div>

알겠습니다. 하지만 그 VPN은 정말 많은 사람들이 사용하니까, 해당 VPN으로 접속하려는 모든 잠재적 사용자들도 함께 차단되는 셈이죠. VPN을 사용할 때 이런 문제가 어떻게 발생하는지 이해하는 데 그 작은 예시가 흥미롭습니다. (사용자 중 한 명이 어떤 행동을 하면, 여러 사람이 공유하는 IP가 서비스에서 차단되니까요 😉 )

[Previous page](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489.md?page=2)

[Next page](https://meta.discourse.org/t/handling-trolls-with-multiple-accounts-over-vpns/49489.md?page=4)
