Added a config option to enable/disable sending transfer packets#12173
Added a config option to enable/disable sending transfer packets#12173Biquaternions wants to merge 1 commit into
Conversation
Transferring a player will require both sender and receiver to have transfers enabled in paper-global.yml and server.properties respectively
|
I am not a large fan of this change. Has the same effect without the need for a new server option. |
|
I thought of something similar while reviewing the code so I made the implementation on the send packet function to also prevent plugins from doing this using packets. |
|
I am confused, why would a plugin transfer players if the server owner is not interested in transfers? |
|
To follow up on this, the transfer command is not something normal players have access to. A server would have to effectively grant operator permissions to someone for them to be able to use it or explicitly the transfer permissions. That is already incredibly dangerous, transferring seems like the least of your worries if someone has such level of permissions. The angle of a plugin transferring has two parts. I just really don't see an angle where a server might have accidental transfers enabled without it being aggressively missconfigured, which I doubt those servers will use a config option to fix that. I'll throw it at some other members for their input, but from my point of view, I don't think I want to pull this change. //edit: it is still a well crafted PR, and thank you for opening it!, but yea. I don't think it is a good fit for paper. |
|
Sometimes people upload malicious plugins to official platforms like it happened in modrinth a couple of months ago. Tbh, that last one is mostly their fault 😅 |
|
No problems, you can close it. |
|
Yea malware certainly exist 😅 Issue with that is usually "ah fuck, malware might as well just change the parsed config value before sending this". Fighting malware outside of "do not install it in the first place" is sadly usually a lost cause. I'll throw the PR at someone else before I close it just to make sure the team agrees with me on this. But yea, thank you already for the PR no matter the outcome! |
Tbh I can't see a reason why would someone transfer people instead of silently grab the exact same information on your server and send it back to the bad dev. People will quickly start to notice those transfers and complain, exposing the plugin, all this for no extra information that a transferred server could extract. |
True, if they managed to get the plugin on the server they can already have access to player information there. But yh, limiting access to the command via permission plus the fact that plugins already have console access and can make worse stuff than just transferring players makes this config a bit pointless. Btw, I think it would be a good idea to mention stuff like this in a dedicated section on the wiki, similar to Velocity's. |
|
Btw, this is the first PR I make to Paper, so I'm not yet aware of your workflow if usually you close the PRs or I should be closing it. |
|
I vote no on this:
|
|
This implementation is far too trivial to bypass by anybody remotely familiar with the networking library in use, and wouldn't take much rocket science to see how to bypass the method here. The only way you'd be able to do this is to handle this in the pipeline itself, but, this generally just offers a fake security assurance which nobody can promise when you're running arbitrary code on your server. |
Transferring a player will require both sender and receiver to have transfers enabled in paper-global.yml and server.properties respectively.
This increases security as server staff with elevated permissions can send players to self-hosted servers to ip-grab them without having console access in the "sender" server.
This also breaks attack vectors where server staff is tricked into transferring players directly via command or clicking a sign.