我正在尝试创建一个游戏排行榜网站,该网站将包含来自不同游戏的人们的高分。
我有3个表users
,games
和gamedata
。
列如下。
users
:id |名称
games
:id |标题| owner_id
gamedata
:user_id | game_id |高分
我有一个Javascript api,第三方游戏开发者使用它来在游戏中创建submit score
按钮。
当他们向我发送数据时,我会使用$_POST
收到这些数据,然后使用game_data
" Insert into game_data(user_id, gameid, highscore) values('$_session['user_id']', '$gameid', '$score')"
表格中查询
现在您知道有人可以向我发送$gameid
和$score
的虚假数据。
由于我无法控制服务器上的这两个数据,如何确保第三方站点发送数据的安全性?
答案 0 :(得分:1)
确保安全是什么意思?
举个例子,我会:
1)清理数据。作为一般规则,永远不要信任用户数据。
2)通过查看数据库并检查if(isset($_POST['Detail'])) {
var_dump($_POST['Detail'];
}
if(!isset($_POST['Detail']) && isset($_GET['Detail'])) {
echo 'Form method is wrong, GET is used by default not POST';
}
是否实际上是表中存在的记录来验证数据。
3)确保在可接受的范围内验证给定的$gameid
。
4)准备您的查询以避免SQL注入。
5)可选:使用SSL(您可以使用 Letsencrypt 获得免费证书)
6)如果可以的话,移动服务器端的大部分逻辑。让客户端只发送操作,并在逻辑服务器端进行数据和操作的精细控制。