我一直在使用类似Facemash的脚本。但问题在于,当我们将光标指向每张图片的图片时对人进行评级时,会出现如下网址:
rate.php?winner=XXX&loser=XXXX1
所以,如果我们直接在地址栏中输入这个诀窍就行了!因此,用户有机会破解他们的分数。我知道我们可以将GET方法更改为POST方法。而且我一直在寻找这个,没有什么能真正帮助我。文件的链接(rate.php和index.php)也包含在这个问题的评论中。
答案 0 :(得分:2)
我正在创建自己的Facemash引擎,这就是我的工作。
我在PHP id
中存储了两个挑战者'$_SESSION
。在显示新对之前,我检查是否设置了$_SESSION
,如果是,我只显示它们而不是从数据库中取出新对。这可以防止在您拍照前刷新页面作弊。我这样做是因为我正在制作的社区相对较小。
所以链接看起来像vote.php?v=left
或right
。在vote.php
中,我从id
和$_SESSION['right']
获取$_SESSION['left']
,然后取消设置。我期待有一天能发布我的剧本。
答案 1 :(得分:0)
是的,如果您从GET更改为POST,则提交时参数不会显示在URL中。
答案 2 :(得分:0)
不是依赖GET / POST来确定比较,而是将数据存储在$_SESSION
中,只让用户选择'image1'或'image2',然后在选择后使其无效并创建新的比较是的。