rehlds icon indicating copy to clipboard operation
rehlds copied to clipboard

Engine changing client's name characters

Open dystopm opened this issue 6 years ago • 5 comments

Since I started to use rehlds (and an specific commit which I don't know exactly) I noticed that players that have "#" character on it are changed with another char different from 35 (ascii '#' dec value). I guess this allows to break any kind of exploit with localized strings, but it broke a compatibility on my gameserver.

My mod registers accounts based on player's nickname, the name checking is binary, I'm using mysql and name field uses ascii_bin collation. When this problem arrived, I started to receive messages from users telling they can't join to their accounts because server threw him his name is not registered, then I figurated is checking a unicode string with a ascii one, and ALSO in a binary mode (strict).

I'm actually NOT allowing users with unicode characters, but this also allows users that joins without unicode chars (users with # character on their name) to not be allowed to join.

The first and cheapest way for solving this for me, would be to disable rehlds feature which alters users nicknames, because I already have a database with specific nicknames and engine is breaking that.

Any suggestions? (changing field collation needs also a rework on some other addons)

dystopm avatar May 13 '18 18:05 dystopm

te dejaron en visto metal

OsweRRR avatar May 15 '18 21:05 OsweRRR

What about the + symbol?

WPMGPRoSToTeMa avatar May 21 '18 14:05 WPMGPRoSToTeMa

@WPMGPRoSToTeMa as I noticed, yes, it also happens with + character

dystopm avatar May 25 '18 05:05 dystopm

best solution would be to change over to steamid based accounts. in addidion this prevents multiaccounting

Broatcast avatar Sep 26 '21 16:09 Broatcast

More info about the filter for evil characters in name is in this commit: https://github.com/dreamstalker/rehlds/commit/40b3a5e646b5c502b8b7f36902998da60cd1bc0b The solution would be to add a cvar like rehlds_filter_chars_in_name which is enabled by default, but you can disable it in case is messing with your plugins or your server is safe enough and handles names correctly.

rtxa avatar Sep 26 '21 16:09 rtxa