我制作一个javascript游戏,玩家在倒数计时器上建立一个分数。当计时器用完时,我会显示一个显示分数的表格,并让用户输入他们的用户名(街机风格)。我将使用POST方法将用户得分发送到将以某种方式存储它的php文件(数据库,文本文件等)。如何防止人们摆弄JS代码并通过一些不正确的分数(或非恶意的东西)传递一些新的价值。
至少,PHP / reviving端最安全的方法是什么,至少只接受整数值?
答案 0 :(得分:2)
这是众所周知的难题。我不确定它是否有一个好的解决方案。用户是客户端JS,因此他们可以100%控制发送到服务器的内容。
你唯一能做的就是服务器端验证。不要只发送分数。发送路径,方法,步骤等。在服务器上也应该启动会话/游戏/级别,因为时间戳可能是从客户端伪造的。
你可以在JS中制作整个游戏,但是在服务器上开始和结束游戏并记住所有步骤。这可能意味着双步/路径验证:JS(即时)和服务器。
(http://games.webblocks.nl/110存在同样的问题,它存储g_stack
中的步骤(点击次数)。)