Task #3795
openCreate a Discourse plugin to enforce manual approval of posts for users from certain IP ranges
0%
Description
Due to a targeted spam campaign, our authentication system currently blocks a whole Autonomous System Number (ASN) of an ISP. As the spam targeted Discourse, it would be optimal to implement a less heavy-handed anti-spam measure on Discourse's side.
A solution could be to "remix" these two plugins:
https://meta.discourse.org/t/force-specific-users-through-moderation/58179
https://github.com/leodavidson/discourse-forcemoderation
https://meta.discourse.org/t/geo-blocking-plugin/227824
https://github.com/communiteq/discourse-geo-blocking
Basics of plugin development:
https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515
The Geo Blocking plugin author even proposed reusing his code for this exact purpose in a recent discussion
Updated by Beluga Beluga 25 days ago
Guilhem noted that Discourse's Watched Words feature might also be hooked into somehow to implement the approval of posts:
https://meta.discourse.org/t/watched-words-reference-guide/241735
Here is one plugin that messes with watched words:
https://github.com/discourse/discourse-watched-word-exceptions
Updated by Beluga Beluga 25 days ago
Another comment from Guilhem:
for the asn databases, we already have some logic in place to keep it up to date (atm it's only used by matomo but it's generic and could be applied elsewhere). I assume there is a ruby api to query that db, otherwise we could let the httpd do the lookups and stamp the requests before passing them along to rails