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

Invite spam control (SPEC-96) #491

Closed
matrixbot opened this issue Jan 21, 2015 · 7 comments
Closed

Invite spam control (SPEC-96) #491

matrixbot opened this issue Jan 21, 2015 · 7 comments
Labels
client-server Client-Server API feature Suggestion for a significant extension which needs considerable consideration

Comments

@matrixbot
Copy link
Member

matrixbot commented Jan 21, 2015

See SPEC-60 for room knock support.

There are outstanding issues with inviting users to rooms, namely:

  • Clients need to know why they are being invited (e.g. a reason key, just like for kicks/bans). However, this opens up a spam vector where any user can send any other user a string. Do we really want to do that?
  • It may be useful to send other state information such as the room name, topic, etc. How is this specified in this request? Does the inviter even specify this, or is it a room config option which fields are shared? This has a lot of parallels with the published room API which exposes some state events.
    • How do we prevent spam attacks via the room name/topic? The spam attack vector may be something we're just going to have to deal with. Ultimately, we need to expose more data about the room. This data is going to be set by the client. Compromises like "just give the event type" don't really fix the problem "because.my.event.type.could.be.like.this".

(Imported from https://matrix.org/jira/browse/SPEC-96)

(Reported by @kegsay)

@matrixbot
Copy link
Member Author

Jira watchers: @kegsay

@matrixbot
Copy link
Member Author

matrixbot commented Jan 21, 2015

Links exported from Jira:

relates to SPEC-60

@matrixbot matrixbot added the p1 label Oct 28, 2016
@matrixbot matrixbot changed the title v2 - Invites and Knocks v2 - Invites and Knocks (SPEC-96) Oct 31, 2016
@matrixbot matrixbot added the feature Suggestion for a significant extension which needs considerable consideration label Nov 7, 2016
@richvdh richvdh removed the p1 label Jul 5, 2017
@richvdh
Copy link
Member

richvdh commented Jul 5, 2017

SPEC-60 now at #932

@heyakyra
Copy link

I see in SPEC-96 "Clients need to know why they are being invited (e.g. a reason key, just like for kicks/bans). However, this opens up a spam vector where any user can send any other user a string. Do we really want to do that?"

One way to manage this is to give control over how and where users may send invites from. For example, maybe I don't want to be able to be contacted directly/out of nowhere, but if you are in a room with me, then you may.

So an imperfect solution i've thought of is to have a way to know and display where the user was invited from. This way there is at least some context to understand how the user was discovered or the inviting party is connected. This possibly could be implemented through forcing room invitations to be whispers in other rooms (and possibly giving each user their own "room" from which they can either allow or deny whispers): https://github.com/vector-im/riot-web/issues/3345#issuecomment-285274081

A simpler but less ideal option is to have a way to always show the rooms users have in common with each other, which I believe discord does.

@turt2live turt2live added the client-server Client-Server API label Feb 6, 2019
@turt2live turt2live changed the title v2 - Invites and Knocks (SPEC-96) Invite spam control (SPEC-96) Feb 7, 2019
@madduck
Copy link

madduck commented Feb 13, 2020

Please see my comment at #2339 (comment)

@Bandie
Copy link

Bandie commented Feb 6, 2021

I have a similar approach like @heyakyra.
See synapse issue vector-im/element-web#9261

@richvdh
Copy link
Member

richvdh commented Sep 10, 2021

I don't think there's much left to do here. Invites can now come with reasons (#2795), and invites already come with a "stripped state" including room name etc. In short, this issue is showing its age.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API feature Suggestion for a significant extension which needs considerable consideration
Projects
None yet
Development

No branches or pull requests

6 participants