【发布时间】:2015-05-11 05:24:16
【问题描述】:
我的网站上有一个 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 请求读取客户端密码。
【问题讨论】:
标签: javascript php jquery security post