Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xmppbl.org - Real-time blocklists for XMPP #3997

Open
Neustradamus opened this issue Apr 2, 2023 · 4 comments
Open

xmppbl.org - Real-time blocklists for XMPP #3997

Neustradamus opened this issue Apr 2, 2023 · 4 comments

Comments

@Neustradamus
Copy link
Contributor

Neustradamus commented Apr 2, 2023

Dear MongooseIM team,

It is possible to add the Real-time blocklists for XMPP?

It exists already for:

Thanks in advance.

@arcusfelis
Copy link
Contributor

Not a high priority, it is very niche application.
Barely documented, not an official XEP.
PubSub for this is a bit of overengineering.
How would it behave with a long list of blocked users?

Besides, not many people expect MUC groupchats to be used in 2023.
Could be done later once we wanna invest time in spam detection infrastructure and logic (i.e. XEP-0377 or something custom). But again, we would probably have to evaluate usage with gigantic lists. Removing the spammer account could be preferable for installations, which do not use s2s. Also, integration with mod_privacy could be considered (but again, there is no clear usage model even for mod_privacy, which would fit the modern requirements).

@Neustradamus
Copy link
Contributor Author

@arcusfelis
Copy link
Contributor

arcusfelis commented Jun 25, 2023

I know.
https://github.com/processone/ejabberd/blob/ffbcf19156b5808e0640193ee8439a9a01354c87/src/mod_muc_rtbl.erl

It is literally non-scalable. It uses broadcasts to ALL online MUC room processes on each pubsub update.
So, if list updates are too often it would lead to DDoS.

And it does not look like it will scale with large number of blocked items. With larger number of items we:

  • have to copy more data into into the room processes.
  • starting having scalability issues with the number of items inside of a single node in pubsub.

In the public environment it means that the spammer could register millions of spam accounts on a public server that allows it and we don't have control over that. And we would have to block the whole domain (which would block the regular users too) or not block them at all.

@arcusfelis
Copy link
Contributor

We could optimize kicking (so, no broadcasts to all rooms) but it still leaves us with the issue of the maximum number of items we can block over PubSub. Scalability characteristics of Pubsub is more interesting topic though. Can we write 1M items into a single node? Something to test first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants