gpt4 book ai didi

javascript - 如何通过Javascript Post函数保护通过PHP运行的SQL

转载 作者:行者123 更新时间:2023-12-03 10:10:04 24 4
gpt4 key购买 nike

我的网站上有一个小型 HTML5 游戏,每次游戏结束时都会执行 Javascript 函数。该函数位于外部脚本中:

SubmitScore:(由游戏脚本调用)

function ONLINE_submitScore(strName,intMs) {
intMs = Math.round(intMs);
result = SQLCommand("online2.php?act=submit&name="+strName+"&score="+intMs);
return result;
}

SQLCommand:接下来要调用

function SQLCommand(url){
ajax=AjaxCaller();
if(ajax==false)
alert("AjaxCaller() failed!");
ajax.open("GET", url, true);
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
return ajax.responseText;
}
}
}
ajax.send(null);
}

AjaxCaller:最终调用的函数

function AjaxCaller(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

我遇到的问题是,有人可以轻松地使用 Chrome 或 Firefox 中的开发者控制台并执行 Javascript ONLINE_submitScore 函数来输入他们想要的任何分数。我可以做什么来防止这种情况发生?使用服务器端密码不起作用,因为很容易在客户端看到读取密码的 POST 请求。

最佳答案

如果您没有使用单向加密密码的登录系统,那么就无法阻止任何人输入他们想要的任何分数,无论他们想输入多少次。当然,在某些时候,您的高分板只是通往数据库的开放管道,任何人都可以将他们想要的任何值欺骗到其中。添加登录系统和密码,您可以限制用户尝试添加分数的次数 - 但您确实无法检查它。是的,也许你可以编写一个在你的游戏中发生的疯狂验证事情,然后在后端重播和检查(我不知道你的游戏是如何工作的),但如果有人愿意,他们仍然可能可以伪造分数。

[FWIW 赌场的工作原理是在后端运行所有结果,但休闲/ Action 移动应用程序则不然,游戏发生在用户的手机上。只是混淆并让他们更难弄清楚如何欺骗您的系统]

[就像,一个很好的起点是不包含一个 super 精心布局的 PHP 文件计划,我可以从浏览器中点击该文件来添加高分。考虑将其编码为您发送的大的粗糙随机文件的一部分,然后在 PHP 端或其他地方对其进行解码。]

关于javascript - 如何通过Javascript Post函数保护通过PHP运行的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com