You are browsing as a guest. Sign up (or log in) to start making projects!

7h 33m 28s logged

Security

Context
I am creating a custom mini game server for Minecraft with Minestom.
A library allowing to write a java Minecraft server from scratch

Security is one of my least favorite thing because it is sooooooooo complicated to get done right but this time it is not about security for protecting the server itself. It is about user security.

Banning

Every public server (sometimes also private ones) need a ban system. I now have implemented one which allows banning players even if they are not on the server by using Mojang’s public API to get the uuid of players with their name. This uuid gets saved alongside a ban time and a reason for the ban to the sqlite database.

The players are also automatically kicked when the writing to the database happens.

Each time players try to connect to the server it first checks if they are banned or not. If yes they kick them instantly again with information for them about how long the ban is etc.

Players get also automatically unbanned if they ban time runs out.

Or an player with sufficiant permissions can unban them over /unban unban <player> manually.

Permanent bans are also possible by telling the server the ban time is 0.

Report system

Players can now report others with a reason. Administrators can then look up all open reports not handled by another administrator. They can view information about the report like who is reported, when is reported, why is reported.

After they have researched if the player actually made something stupid they can react to it and tell the report system to archive the report and tell a reason/a explanation on how/why it is fixed now for future administrator actions to look at.

Chats

Going to a more fun little thing.

Now every player can only chat with other players in the same world/crate/game/whateveryouwannecallthem so that not all players are getting flooded by messages by ALL players of the ENTIRE server.

Auto banning

I also gone ahead and made a system which checks those chat messages before sending them to other players for words from a word blacklist configured in the server configuration. If a match is found the player who send that message gets instantly banned for using a blacklisted word.

This is just basic security from people using bad/horrible words in chat for/with others.

When the system maybe fail to detect something because players are probably starting using cryptic things to express words we also have the report system and the logs made from those chat conversation which can be viewed by server administration.

0
10

Comments 0

No comments yet. Be the first!