2017-04-09 28 views
0

我正在开发一个JavaScript记忆卡游戏。最后,用户有能力将他的分数提交给数据库。最好的4分将赢得奖项。确保比赛比分提交ajax请求的最佳方法?

在游戏结束时,将打开一个包含表单的Lightbox,其中用户输入他的名字,姓氏和电子邮件地址。然后将得分通过ajax发布到api。此分数也包含在发布请求中。

经验丰富的用户可以在浏览器开发控制台中轻松查找分数提交请求,并可以通过curl或自己的构建ajax请求轻松发送假分数。

什么是预防作弊的好方法?

回答

0

为用户会话生成一个UUID并将其存储在它们的cookie或JS本地存储器或其他东西中。然后将与此UUID绑定的分数保存在数据库中。然后保存与UUID绑定的名称和电子邮件。

基本上不计算/发送客户端的原始分数。将原始答案从游戏发送到服务器,并让服务器计算并保存得分。

0

你可以尝试这样的事情

if(@isset($_SERVER['HTTP_REFERER']) && 
$_SERVER['HTTP_REFERER']=="http://yourdomain/ajaxurl") 
{ 
    //Request identified as ajax request 
} 

这将确保该推介网站是你的。我听说这可以通过修改标题黑客...但它只是一个游戏,如果他们可以通过XSS和检查指向HTTP并可以生成自己的标题,他们应该赢得....