Suppose that in a browser-based game, the completion of an action (for simplicity, you can say that someone clicks on a link that increases their rating by 100) by clicking on this link that would have a URL, for example increase_score.pl?amount=100, which Prevention is someone just sending requests to the web server to execute this command:
increase_score.pl?amount=100
I am aware of the check HTTP_REFERER, but I know that people can get around this (not sure how) and other than some restrictions checking the second option. I'm a little dead end. Anyone having this kind of problem? Solutions?
HTTP_REFERER
Nothing can stop them from doing this if you implement your game as you suggest.
You need to implement the game logic on the server and assign points only after the server checks the action.
For example: on SO, when someone votes your question, it is not sent as a team to enhance your reputation. The web application simply tells the server user X to vote for the question. Then the server checks the data and assigns points if everything is checked. (Not to say that this is a game, but the required logic is similar.)
: . , (), -, , .
, . , , , , , . " , , , ".
:: , .: !
:: , .: , , , , gazillion points... . . , "Go Fsck Yourself, Cheater" .
, , , cookie "damn-near-impossible-to-guess", , , .:-) ( , Google .)
() , -, .
HTTP_REFERER -.
cookie/.
, . , .
, .
-, - POST, GET. GET , HTTP.
-, , , - Trust Trust . , , . , -- .
Ben S , , . , , . , , , , . . . , - , "completedLevelFour". , ?
, , - . -, , . , , API ? , . , .
100% . . Facebook ( API ). , , , reqeust.
- . , , " ", , , . , .
!
, . , , , , , . , IP-, , -. , Stackoverflow -, , , , . , , .
, (, ), , (, 100 - ). , , - . , - , .
Ahmet, , , . . , 100 :
increase_score.pl?amount=100&token=AF32Z90
, , , . .
URL- . - :
/score/link_88_clicked/ /score/link_69_clicked/ /score/link_42_clicked/
:
If you want the game to run only on your server, you can also determine where the signal was sent from in your receiving trick and ignore everything that does not come from your domain. It will be a real pain to fake your codes if you need to escape from your dedicated domain to send points.
It also blocks most CheatEngine tricks.