Лучший способ остановить людей, взламывающих счет игры в пост-запросе - PullRequest
0 голосов
/ 04 апреля 2020

Я создаю простую javascript игру, в которой пользователь может выиграть очки, собирая предметы в игре.

Когда пользователь умирает, счет должен быть перенесен на сервер, а затем сервер может затем добавьте их в таблицу лидеров.

Мне интересно, как лучше всего остановить пользователей, просто ставя точку останова в коде перед отправкой запроса на публикацию и увеличивая их счет?

У кого-нибудь есть какие-нибудь идеи, как я могу лучше всего предотвратить это?

Заранее спасибо

1 Ответ

0 голосов
/ 04 апреля 2020

Я решил go использовать это запутывающее средство онлайн, я проверил, и мой код все еще работает и делает его полностью нечитаемым. Для меня этого будет достаточно для того, что мне нужно попытаться остановить любую попытку взлома на стороне клиента.

https://obfuscator.io/

В качестве примера, это превращает это .. .

function hi() {
  console.log("Hello World!");
}
hi();

в это ...

var 0x47ec = ['nWQak', 'urEwG', 'SRKDw', 'BRVHJ', 'oBYts' , 'FUjKP', 'ODlZT', 'ghsnL', 'nrAy C', 'KKMCE', 'LjVlL', 'eUxVv', 'DxTPw', 'длина', 'LXhVN', 'imBSA', 'EEFqX », 'WENXH', 'TycqD', 'MwnNk', 'Debu', 'nDHWM', 'hRvAg', 'cxqiw', 'тест', 'uctXv', 'DYYJz', 'конструктор', 'JkGfj', 'ZRfk c', 'GLvKV', 'HFujT', 'применить', 'mAOEG', 'NPnmv', 'IlYTI', 'инициализации', 'fOjQu', 'вызов', 'yAGlJ', 'BjwwL' , 'sqyoq', 'RpyHn', 'строка', 'dHsIy', 'tCLma', 'цепь', 'stateObject', 'VSjtN', 'yXRAh', 'saqMw', '\ x5c + \ x5c + \ x20 * ( : [A-Za-Z $] [0-9a-Za-Z _ $] ) ' 'TMHOd', 'FUZwZ',' функция \ x20 \ x5 c ( \ x20 * \ x5 c)», 'OtKZF', 'bUNZJ', 'MpcMX', 'JDYoe', 'действие', 'zXIow', 'eLQsB', 'AHQpF', 'счетчик', 'gger' ]; (функция (_0x4210d1, _0x47ec7a) {var _0x1f5a2f = функция (_0x2d1cd4) {while (--_ 0x2d1cd4) {_ 0x4210d1'pu sh ';}}; _ 0x1f5a2f (++ _ 0x47ec) (0 _ _ 0477a) x47e c, 0x179)); var _0x1f5a = функция (_0x4210d1, _0x47ec7a) {_ 0x4210d1 = _0x4210d1-0x0; var _0x1f5a2f = _0x47ec [_0x4210d1]; вернуть _0x1 {x1} {0x1} {0x1} {0x1} {0x1} {0x1} {0x1} {0} {} {0} {} {0} {} {0} {} {0} {} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} 05 : _0x1f5a ('0xf'), 'dHsIy': function (_0x3599bb, _0x23269a) {return _0x3599bb === _ 0x23269a;}, 'VSjtN': _ 0x1f5a ('0x14'), 'nWQak' '' 0x1f, 0a1) 0) 'ODlZT': _ 0x1f5a ('0x c'), 'ndGbP': _ 0x1f5a ('0x7'), 'IlYTI': функция (_0x2209b8, _0x3666c3) {возвращать _0x2209b8 (_0x3666c3); 0: 0a5); '0x2'), 'NzKKp': _ 0x1f5a ( '0x40'), 'sqyoq': _ 0x1f5a ( '0x3b'), 'ZmnER': 'вход', 'RpyHn': _ 0x1f5a ( '0x22'), 'DYYJz': function (_0x51584b, _0x26c5e c) {return _0x51584b (_0x26c5e c);}, 'GLvKV': function (_0x406078) {return _0x406078 ();}, 'BRVHJ': _ 0x1f5a ('0x17)) ': функция (_0x29750b, _0x5b4d24, _0x1d374a) {возвращение _0x29750b (_0x5b4d24, _0x1d374a);}}; вар _0x523935 = функция () {вар _0x59e204 = {' LXhVN ': функция (_0x472cc8, _0x567804) {возвращение _0x472cc8 == _ 0x567804 ;}, 'oBYts': _ 0x1d9184 [_0x1f5a ('0x24')]}; if (_0x1d9184_0x1f5a ('0x39')) {return! [];} else {var _0x53f0f6 =!) {var _0x3a9e1d = fir stCall? function () {if (fn) {var _0x160443 = fn_0x1f5a ('0x2d'); fn = null; return _0x160443;}}: function () {}; firstCall =; _ 0x5372d8 = null; return _0x2683a6;}} : function () {}; _ 0x53f0f6 = _0x1f5a ('0x33'));} else {_0x1d9184 ['nqyOg'] (_ 0x523935, this, function () {var _0x5ba386 = {'KKMCE': function (_0x43607, _0xa) return _0x1d9184_0x1f5a ('0x30');}}; var _0x5ac246 = новый RegExp (_0x1d9184 [_0x1f5a ('0xe')]); var _0x3800df = новый RegExp (_0x1d9184 ['Nz0 '3) y6k3); C (_ 0x1f5a ( '0x31')); если (_ 0x5ac246_0x1f5a ( '0x25') || _0x3800df_0x1f5a ( '0x25')!) {если (_0x1d9184_0x1f5a ( '0x39')) {_ 0x1d9184_0x1f5a ( '0x27');} else {IcEIoj_0x1f5a ('0x16');}} else {_0x1d9184_0x1f5a ('0x2b');}}) ();}} ()); console'log ';} hi (); функция yYcS C (_ 0x235704) {var _0x47e908 = {'uctXv': функция (_0xc4a029, _0x16818b) {return _0xc4a029! == _ 0x16818b;}, 'eLQsB': _ 0x1f5a ('0x8'), 'mAOEG': _ 0 '' 03 0a) ( : 'Odpgi', 'TMHOd': function (_0x1dddfa, _0x48612f) {return _0x1dddfa === _ 0x48612f;}, 'eUxVv': 'while \ x20 (true) \ x20 {}', 'HFujT': _ 0x1f5a ('0x1f5a (' 0x1f5a ('0x1f5a (' 0x1f5a ('0x1f5a (' 0x1f5a ('0x1f5a (' 0x1f5a ('0x1f5a) '),' ZRfk c ': функция (_0x2f44 d4, _0x5d17b4) {возвращение _0x2f44d4 == _ 0x5d17b4;!}, 'fOjQu': функция (_0xa4360d, _0x5a8b83) {возвращение _0xa4360d + _0x5a8b83;}, 'FUZwZ': функция (_0x354fba, _0x1d82fe) {возвращение _0x354fba / _0x1d82fe;}, 'EEFqX': _ 0x1f5a ('0x1a'), 'FUjKP': function (_0x4e90a1, _0x2b0db c) {return _0x4e90a1 + _0x2b0dbc;}, 'saqMw': 'debu', '0x * _ (0x5): * '),' zbnj c ': функция (_0x28b996, _0x39f05a) {return _0x28b996 + _0x39f05a;},' DxTPw ': _ 0x1f5a (' 0x3 c '),' JkGfj ': функция (_0x294a) _0x807429) {return _0x294a9 c (_ 0x807429);}, 'bUNZJ': функция (_0x1a bddc, _ 0x2b9078) {return _0x1a bddc (_ 0x2b9078);}, 'WENXH5' _ 0 ( '0x34'), 'BjwwL': _ 0x1f5a ( '0x6'), 'MwnNk': _ 0x1f5a ( '0x15')}; функция _0x1e8ccf (_0x21fb35) {var _0xa066a8 = {'imBSA': function (_0x199641) {return _0x199641 ();}, 'yXRAh': _ 0x1f5a ('0x3'), 'NPnmv': _ 0x470f0 (_0x0) 0a [00470f] 0 [0] 0x0f0 [0] 0] 05 [5] [0] 00 [0] 05 [5] 0 [0] 090] ; if (_0x47e908 ['TMHOd'] (typeof _0x21fb35, _0x1f5a ('0x38'))) {return function (_0x2da2a5) {} _ 0x1f5a ('0x28') _ 0x1f5a ('0x2d'); '0x2d');} 0x1ef00 (0) _ if000 0x0 ')) {_ 0xa066a8_0x1f5a (' 0x1 c ');} еще {если (_0x47e908_0x1f5a (' 0x2a ') || _0x21fb35% 0x14 === 0x0) {(функция () {если (_0xa066a8 [_0x1f5a (' 0x3e ')] === _ 0xa066a8 [_0x1f5a (' 0x2f ')]) {возвращение _0x1f5a (!' 0x33 '));} еще {(функция () {если (_0x47e908_0x1f5a (' 0x26' )) {возвращение [!]; } else {return _0x1e8ccf;}} _ 0x1f5a ('0x28') _ 0x1f5a ('0x2d'));}}} _ 0x1e8ccf (++ _ 0x21fb35);} try {if (_0x47e908 ['WENXH'] === _ 00900 '0x1e')]) {if (_0x235704) {if (_0x47e908_0x1f5a ('0x0')) {if (_0x235704) {return _0x1e8ccf;} else {_0x47e908_0x1f5a ('0x29');} }e {0x29 ');}} {{0x29');}} {{0x29 ');}} e {_0x47e908_0x1f5a ('0x4');}} else {_0x47e908_0x1f5a ('0x4');}} catch (_0x2c3efb) {}}

Очевидно, это добавит некоторые накладные расходы на мое приложение, но, похоже, работать очень хорошо, поэтому я ха ppy с этим решением.

...