防止Facemash通过网址作弊

时间:2012-06-07 13:11:03

标签: php url

我一直在使用类似Facemash的脚本。但问题在于,当我们将光标指向每张图片的图片时对人进行评级时,会出现如下网址:

rate.php?winner=XXX&loser=XXXX1

所以,如果我们直接在地址栏中输入这个诀窍就行了!因此,用户有机会破解他们的分数。我知道我们可以将GET方法更改为POST方法。而且我一直在寻找这个,没有什么能真正帮助我。文件的链接(rate.php和index.php)也包含在这个问题的评论中。

3 个答案:

答案 0 :(得分:2)

我正在创建自己的Facemash引擎,这就是我的工作。

我在PHP id中存储了两个挑战者'$_SESSION。在显示新对之前,我检查是否设置了$_SESSION,如果是,我只显示它们而不是从数据库中取出新对。这可以防止在您拍照前刷新页面作弊。我这样做是因为我正在制作的社区相对较小。

所以链接看起来像vote.php?v=leftright。在vote.php中,我从id$_SESSION['right']获取$_SESSION['left'],然后取消设置。我期待有一天能发布我的剧本。

答案 1 :(得分:0)

是的,如果您从GET更改为POST,则提交时参数不会显示在URL中。

http://www.w3schools.com/php/php_post.asp

答案 2 :(得分:0)

不是依赖GET / POST来确定比较,而是将数据存储在$_SESSION中,只让用户选择'image1'或'image2',然后在选择后使其无效并创建新的比较是的。

Example site - form only lets you choose 1 or 2