the-draupnir-project / Draupnir

A Matrix moderation bot
https://the-draupnir-project.github.io/draupnir-documentation/
82 stars 14 forks source link

Create a safer, managed, level of protection for public rooms by using knock (See details, it'll be good) #434

Open Gnuxie opened 4 months ago

Gnuxie commented 4 months ago

By forcing clients to join the room with knocking, Draupnir can automatically accept their request to join by checking against policies. This removes the situation caused by Draupnir's lazy bans where there is a small window between joining and being immediatly being banned where a spamming server can send spam that leads to soft failures.

This also provides better protection for cases where the JoinWaveShortCircuit protection is normally used. Rather than shutting the room down, the JoinWaveShortCircuit protection can prevent the auto-approval of more users until a moderator is present. Users will still be able to knock and there will be less disruption to service.

There has been a recent example where the Rust matrix room was severely disrupted by this attack method, and this feature would have prevented that.

FSG-Cat commented 4 months ago

To Cat this seems like a compromise while we are waiting for a better solution like MSC4106

4106 would enable putting the accept queued members as full members for history access purposes leading to a even smaller disruption for the members caught in the net of a Circuit breaker Trip or another protection deeming them ineligible for automatic approval.

This feature is i would say a more primitive version of what you would use for 4106 on the UX but the code should be almost identical if not identical meaning this is a great idea no matter the destiny of 4106.