Page MenuHomeWildfire Games

Ban username without rating in lobby multiplayer matches
ClosedPublic

Authored by elexis on Oct 22 2018, 12:46 PM.

Details

Summary

Yet another unwanted side effect of having the rating in the nickname and not being able to verify the rating of the joining player (as it might have changed during the match or the server might have not responded with the rating (because the rating bot is offline or slow)).
Lobby players can circumvent a ban in a multiplayer match by getting a new IP address and changing the rating part of the nickname. For example:

<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (-_-), m_Password: , m_IsLocalClient: 0 } of size 48 from [6F5CA942...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (ffs), m_Password: , m_IsLocalClient: 0 } of size 48 from [4D399770...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (elexis3 (1180), m_Password: , m_IsLocalClient: 0 } of size 68 from [6BD2D91F...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (Innocent  XVII), m_Password: , m_IsLocalClient: 0 } of size 70 from [588D2543...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (nub), m_Password: , m_IsLocalClient: 0 } of size 48 from [FFF06A52...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (1682), m_Password: , m_IsLocalClient: 0 } of size 50 from [6893CE8D...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (1679), m_Password: , m_IsLocalClient: 0 } of size 50 from [CF1C8E0A...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit1), m_Password: , m_IsLocalClient: 0 } of size 68 from [6940A29F...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit3), m_Password: , m_IsLocalClient: 0 } of size 68 from [A9257EF6...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit4), m_Password: , m_IsLocalClient: 0 } of size 68 from [2C7AEC37...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit5), m_Password: , m_IsLocalClient: 0 } of size 68 from [92E74ED2...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit 6), m_Password: , m_IsLocalClient: 0 } of size 70 from [B969A8B9...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit6), m_Password: , m_IsLocalClient: 0 } of size 68 from [8697E7FE...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (didnt doshit7), m_Password: , m_IsLocalClient: 0 } of size 68 from [C911A8C7...]</p>
<p>Net server: Received message CAuthenticateMessage { m_Name: Hannibal_Barca (1683), m_Password: , m_IsLocalClient: 0 } of size 50 from [A6C5F515...]</p>
Test Plan

We should remove the rating from the nickname in the source / simulation data entirely and construct the displayed nickname + rating combination only when displayed.

One can test the patch with two lobby accounts, hosting a game, joining the game with the other one, banning the other one, having the other one change in lobby.js "ip" to 127.0.0.1 and "nickname" to playername (x).

Diff Detail

Repository
rP 0 A.D. Public Repository
Branch
/ps/trunk
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 6410
Build 10618: Vulcan BuildJenkins
Build 10617: arc lint + arc unit

Event Timeline

elexis created this revision.Oct 22 2018, 12:46 PM
elexis edited the test plan for this revision. (Show Details)Oct 22 2018, 12:51 PM
Vulcan added a subscriber: Vulcan.Oct 22 2018, 1:08 PM

Successful build - Chance fights ever on the side of the prudent.

Link to build: https://jenkins.wildfiregames.com/job/differential/751/display/redirect

This revision was not accepted when it landed; it landed in state Needs Review.Oct 25 2018, 2:00 PM
This revision was automatically updated to reflect the committed changes.