ironbane / IronbaneServerLegacy

A 3D MMO written using pure javascript.
http://www.ironbane.com/
GNU General Public License v3.0
175 stars 41 forks source link

Prevent Easy Cheating - Eliminate Risk of Cheating in Future Competitions #221

Open LunaSolVT opened 11 years ago

LunaSolVT commented 11 years ago

I've noticed that players are starting to cheat at the game with Javascript injections through such methods as browser "javascript:[X and Y code]."

With Nick's suggestion of opening up formal competition using a monster arena https://github.com/ironbane/IronbaneServer/issues/213 , I feel like some users will start simply cheating to one-up other players.

One way cheating could easily be abused is by glitching through solid objects. I have found that projectiles can go out of solid objects, but projectiles cannot go into solid objects. This means that, in an arena, if I clipped through a wall, I could easily attack monsters one-by-one completely without risk.

My immediate suggestions are as follows: Set up some simple client sided values to validate movement, then Have server check movement, and if their speed is way over than what it should be, kick them. Create some checks done by the server to validate positioning values. If they are inside of an object, send them to the closest point outside of the object Randomly obfuscate release code, so that the open-source code is different than the user-readable release in the public server

I'm not entirely familiar with anti-cheat methods, and I know this is difficult in an open source game, but at the very least, something should be done if any sort of competition is opened in-game.

LunaSolVT commented 10 years ago

Also see https://github.com/ironbane/IronbaneServer/issues/256 for information about the Scottss script.