What would you like done?
Build a Discourse plugin that does the following:
-
calculates a browser fingerprint for each user session ala panopticlick using perhaps fingerprintjs2, or clientjs, or similar. This dependency should only be loaded when the plugin is configured and enabled. The fingerprint should only be calculated once per browsing session per logged in user.
-
make sure the fingerprint table has a column for “fingerprint type” that lists the method of fingerprint generation, so that alternate fingerprints can be added at a later date. For this initial version, one type of fingerprint is fine. Also be sure to store the date that the fingerprint was generated in a column as well.
-
if this browser session fingerprint has not been seen before for this user, store it in the last 10 known browser fingerprints for this user (where 10 is a configurable limit), replacing the oldest known fingerprint. This table should not grow indefinitely.
-
have a small bit of UI that shows all user accounts that have matching browser fingerprints with a different user account, to help identify duplicate users.
The purpose of this plugin is to help combat trolls that create multiple accounts with a VPN – as documented here, here, and here.
When do you need it done?
Next 3 months
What is your budget, in $ USD that you can offer for this task?
$1000, with a possible $1000 discretionary bonus for being xxxxtra awesome, after seeing your work and how responsive you are to feedback on your work
Note that this plugin must be MIT licensed, and will be folded into the discourse org once completed.