Подсигуряване на AJAX заявка

nagradi.is

New Member
Здравейте,
Въпросът ми ще ви прозвучи елементарно, но след толкова ровене не успях да открия отговор.

Кой е най-ефектнивния метод за подсигуряване на ajax post request?

Имам една игра, която изпраща заявка до обработващия файл колко 'пари' да добави при печалба. Не знам как, но потребителите си правят много 'пари' чрез пробиване на тази заявка. Какво да правя?

едит: играта е на javascript
 

alphawow

Active Member
От: Подсигуряване на AJAX заявка

Добави някакъв тоукен, който се изпраща със заявката и ако не е валиден не изпълнявай кода. Също може да правиш проверка дали заявката идва от твоя домеин и ако не е от твоя пак да не изпълняваш кода.
 

mobilio

Well-Known Member
От: Подсигуряване на AJAX заявка

Я дай линк към играта да ти покажа как... на лични естественно!
 

nagradi.is

New Member
От: Подсигуряване на AJAX заявка

alphawow, имам такъв тоукен, който се сменя при всяко презареждане на страницата, но изглежда не върши работа. Проверката с домейна нещо не мога да я направя.
Има ли друг начин освен да изпращат фалшиви заявки да пробият?
Ако говорим за това "if(preg_match("/domaina.com/", $_SERVER['HTTP_REFERER'])", имам го..не върши работа изглежда..

mobilio,имаш лично.

Благодаря!
 

uni-web

Well-Known Member
От: Подсигуряване на AJAX заявка

Кой е най-ефектнивния метод за подсигуряване на ajax post request?
едит: играта е на javascript

Е те туй, като ми го обясниш може и да се изкажа.
 

mobilio

Well-Known Member
От: Подсигуряване на AJAX заявка

Тук съм описал какъв е проблема:
http://peter.nikolow.me/cheating-blitz-comment-voting/

А решението е просто... вместо да се симплифицира заявката, тя трябва да се УСЛОЖНИ като се вкарат допълнителни параметри! Заявката трябва да се направи да бъде от няколко параметъра които по сложен математичен модел да взаимодействат. Ето и прост пример:

Ако сме спечелили 3 кредита примерно. Трябва да предадем а=3 към сървъра. Обаче ние си измисляме число b (0-100) и правим c=b-a (или др. операция). Цялото това се обединява като масив от стринг - "a=3&b=10&c=7" стринга се енкодва като hex и цялото това се подава към някакъв енкриптор като RSA примерно ( ето код на JavaScript ) като ключа... идва от сървъра...

Понеже сървъра генерира ключа - ще може да си разкодира и съобщението и да провери дали е валидно. Ако сървъра сменя ключа често - минути или дори за всеки играч на 5 минути това ще прави атаката доста по-трудна. За целта обаче е необходимо да се обфускира сорс кода на javascript-a. Ако някой успешно пробие системата... просто се правят промени и системата ще бъде сравнително по-защитена.
 

uni-web

Well-Known Member
От: От: Подсигуряване на AJAX заявка

Ти добре си го описал, то при ялово програмиране, всичко може да се манипулира, аз само не разбрах какво обще има между :

Кой е най-ефектнивния метод за подсигуряване на ajax post request?
едит: играта е на javascript

И от кога javascriptа може да обработва заявки с: ajax post request, да не би да са го направили сървърен.

Тук съм описал какъв е проблема:
http://peter.nikolow.me/cheating-blitz-comment-voting/

А решението е просто... вместо да се симплифицира заявката, тя трябва да се УСЛОЖНИ като се вкарат допълнителни параметри! Заявката трябва да се направи да бъде от няколко параметъра които по сложен математичен модел да взаимодействат. Ето и прост пример:

Ако сме спечелили 3 кредита примерно. Трябва да предадем а=3 към сървъра. Обаче ние си измисляме число b (0-100) и правим c=b-a (или др. операция). Цялото това се обединява като масив от стринг - "a=3&b=10&c=7" стринга се енкодва като hex и цялото това се подава към някакъв енкриптор като RSA примерно ( ето код на JavaScript ) като ключа... идва от сървъра...

Понеже сървъра генерира ключа - ще може да си разкодира и съобщението и да провери дали е валидно. Ако сървъра сменя ключа често - минути или дори за всеки играч на 5 минути това ще прави атаката доста по-трудна. За целта обаче е необходимо да се обфускира сорс кода на javascript-a. Ако някой успешно пробие системата... просто се правят промени и системата ще бъде сравнително по-защитена.
 

mobilio

Well-Known Member
От: От: Подсигуряване на AJAX заявка

Ти добре си го описал, то при ялово програмиране, всичко може да се манипулира, аз само не разбрах какво обще има между :



И от кога javascriptа може да обработва заявки с: ajax post request, да не би да са го направили сървърен.

node.js anyone?

тук съм описал браузърната страна, на сървъра да си го прави както си иска ако ще и на node.js Проблема е че се неглижира композирането на самите заявки, а в интернет е пълно с лоши момчета...
 

uni-web

Well-Known Member
От: От: Подсигуряване на AJAX заявка

node.js anyone?

тук съм описал браузърната страна, на сървъра да си го прави както си иска ако ще и на node.js Проблема е че се неглижира композирането на самите заявки, а в интернет е пълно с лоши момчета...

Аз, не съм имал предвид теб, прочетох заглавието на темата, и реших да погледна, ако мога да помогна, но като прочетох описанието и специално последните редове, просто нямаше смисъл за каквото и да е.
 

nagradi.is

New Member
От: Подсигуряване на AJAX заявка

Имах предвид, че самата игра е на javascript, иначе заявката си се изпраща с ajax ..
ще пробвам решението на mobilio, дано успея да го направя.
Благодаря!
 

Горе