Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止事后数据伪造_Javascript_Php_Mysql_Post - Fatal编程技术网

Javascript 防止事后数据伪造

Javascript 防止事后数据伪造,javascript,php,mysql,post,Javascript,Php,Mysql,Post,我有一个js游戏,有一个分数和“发布分数”按钮。此按钮将向php脚本发送POST请求,然后该脚本将向数据库添加分数。问题是,用户可以在浏览器中看到应用程序向哪个页面发送帖子数据,因此他可以通过发送任何他能想到的数字来伪造帖子数据。这类似于CRSF,但令牌不会有帮助,因为用户也可以看到它。我考虑这个问题已经有一段时间了,还没有提出任何100%有效的解决方案。你在客户机上所做的一切都不可信 我会尝试添加我自己的小加密,它可以被我逆转。 我猜甚至是一些基本的东西,比如将数字显示为字符、1=F、2=p,

我有一个js游戏,有一个分数和“发布分数”按钮。此按钮将向php脚本发送POST请求,然后该脚本将向数据库添加分数。问题是,用户可以在浏览器中看到应用程序向哪个页面发送帖子数据,因此他可以通过发送任何他能想到的数字来伪造帖子数据。这类似于CRSF,但令牌不会有帮助,因为用户也可以看到它。我考虑这个问题已经有一段时间了,还没有提出任何100%有效的解决方案。

你在客户机上所做的一切都不可信

我会尝试添加我自己的小加密,它可以被我逆转。
我猜甚至是一些基本的东西,比如将数字显示为字符、
1=F
2=p
,等等。。。通过添加一些随机垃圾来生成一个字符串,比如
asdzf7erwhbrdfm0[encryptedscore]0jkfsdgfadsegajb
,然后删除零之间的所有内容。

@AlankarMore你链接到的内容与OP的问题毫无关系。没有100%有效的解决方案——这简直是不可能的。但是,你可以让它变得更难理解(不可能的原因很简单:你怎么知道用户没有修改他们正在运行的代码,所以每次他们得分都会得到1000分而不是1分?)是的,我想过加密数字,但这个想法的缺点是,一旦用户知道某个分数的代码,你可以在每次游戏开始(甚至是请求)时使用新密码,比如在以base64编码字符串形式提交实际数据之前发送新密码(
atob
btoa