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