Javascript 防止后退按钮攻击?PHP
我用Javascript和PHP构建了一个简单的游戏。一旦用户达到目标分数,他们就可以将自己的名字添加到highscore mysql数据库中。我正在使用PHPPost获取他们的分数并将其添加到mysql 在某人获得高分并输入姓名后,它会将分数变量重置回零,并将其重定向回带有标题(“位置”)的游戏主页面。如果他们点击后退按钮一次,一切都很好,这表明他们的分数是零,因为我重置了变量。但是,如果他们按两次后退按钮,就会显示他们的高分,他们可以再次输入自己的名字,并用自己的名字填充高分数据库Javascript 防止后退按钮攻击?PHP,javascript,php,mysql,Javascript,Php,Mysql,我用Javascript和PHP构建了一个简单的游戏。一旦用户达到目标分数,他们就可以将自己的名字添加到highscore mysql数据库中。我正在使用PHPPost获取他们的分数并将其添加到mysql 在某人获得高分并输入姓名后,它会将分数变量重置回零,并将其重定向回带有标题(“位置”)的游戏主页面。如果他们点击后退按钮一次,一切都很好,这表明他们的分数是零,因为我重置了变量。但是,如果他们按两次后退按钮,就会显示他们的高分,他们可以再次输入自己的名字,并用自己的名字填充高分数据库 无论如何
无论如何,要防止这种情况发生?您需要检查用户的至少一项识别功能,并检查他们在提交表单之前是否提交了分数。有多种方法可以做到这一点,每种方法都有各自的缺点,因此最好是混合搭配,但我脑子里想不出的一些方法包括:
- 检查具有相同IP和用户代理字符串的人员在过去x分钟内没有提交高分(尽管这可能会阻止提交某些合法分数-假设学校/办公室使用相同的浏览器并具有相同的IP)
- 在到达时放置带有识别用户id的跟踪cookie。然后检查用户id在过去x分钟内没有提交分数。(例如,如果需要,启动PHP会话)
- 在提交分数后将cookie添加到浏览器中,然后在提供表单之前检查此cookie(是的,可以通过删除cookie轻松解决)。或者,您可以在会话中设置一个值)
- 检查具有相同IP和用户代理字符串的人员在过去x分钟内没有提交高分(尽管这可能会阻止提交某些合法分数-假设学校/办公室使用相同的浏览器并具有相同的IP)
- 在到达时放置带有识别用户id的跟踪cookie。然后检查用户id在过去x分钟内没有提交分数。(例如,如果需要,启动PHP会话)
- 在提交分数后将cookie添加到浏览器中,然后在提供表单之前检查此cookie(是的,可以通过删除cookie轻松解决)。或者,您可以在会话中设置一个值)
- 检查具有相同IP和用户代理字符串的人员在过去x分钟内没有提交高分(尽管这可能会阻止提交某些合法分数-假设学校/办公室使用相同的浏览器并具有相同的IP)
- 在到达时放置带有识别用户id的跟踪cookie。然后检查用户id在过去x分钟内没有提交分数。(例如,如果需要,启动PHP会话)
- 在提交分数后将cookie添加到浏览器中,然后在提供表单之前检查此cookie(是的,可以通过删除cookie轻松解决)。或者,您可以在会话中设置一个值)
- 检查具有相同IP和用户代理字符串的人员在过去x分钟内没有提交高分(尽管这可能会阻止提交某些合法分数-假设学校/办公室使用相同的浏览器并具有相同的IP)
- 在到达时放置带有识别用户id的跟踪cookie。然后检查用户id在过去x分钟内没有提交分数。(例如,如果需要,启动PHP会话)
- 在提交分数后将cookie添加到浏览器中,然后在提供表单之前检查此cookie(是的,可以通过删除cookie轻松解决)。或者,您可以在会话中设置一个值)