向服务器写入文件,将文件写入到Web服务器的安全方式

我试图获得一个JavaScript函数来调用PHP函数来向我的Web服务器写入文本文件,以便我可以在不使用数据库的情况下为我的游戏存储简单数据。但是,这将允许随机的人从控制台调用该功能(通过按F12打开),并将文件写入我的Web服务器。将文件写入到Web服务器的安全方式

有什么办法解决这个问题吗?一切都错了吗?我必须从头开始吗?或者它是不可能的?

我当前的代码:

的test.html:

test

JS/php.js:

function getReq() {

var req = false;

if (XMLHttpRequest) req = new XMLHttpRequest();

else {

try {

req = new ActiveXObject("Msxml2.XMLHTTP");

} catch(e) {

try {

req = new ActiveXObject("Microsoft.XMLHTTP");

} catch(e) {

return false;

}

}

}

return req;

}

function phpFunc(url, func, success) {

sfunc = func.split(")")[0].split("(");

rfunc = sfunc[0];

rparams = sfunc[1];

var req = getReq();

if (!req) return false;

req.onreadystatechange = function() { if (req.readyState == 4 && req.status === 200) success(req.responseText); }

req.open("GET", url + "?t=" + Math.random() + "&func=" + rfunc + "&params=" + rparams, true);

req.send();

}

function alertText(text) {

alert(text);

}

test.php的:

function write($text) {

$file = fopen("test.txt", "w");

fwrite($file, $text);

fclose($file);

}

{

$func = $_GET["func"];

$params = explode(", ", $_GET["params"]);

for ($i = 0; $i < count($params); $i++) {

if (is_numeric($params[$i])) $params[$i] = (int)$params[$i];

else $params[$i] = str_replace(array("\"", "'"), "", $params[$i]);

}

call_user_func_array($func, $params);

}

?>

另外英语不是我的第一语言,所以我不知道是否一切都输入正确。

+0

验证他们的身份,然后使用会话cookie和/或访问令牌。 –

+1

客户端没有安全性。无论您的代码在浏览器中做什么,都可以在控制台中进行复制,但程度不同。有一些事情可以使它变得更加困难(访问令牌,如@chRyNaN所说),但最终,您的代码已显示出来,并且可以出于任何目的随意修改。唯一的万无一失(但是很昂贵)的方式是让所有的后果都发生在服务器上,就像一些MMO一样。 –

+0

@Amadan是对的。所有需要安全的代码都应该在服务器上执行。访问令牌仅用于验证服务器上的用户身份,以便决定是否执行任务。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值