我对网络开发相当陌生,最近终于设法使用JavaScript编写简单的在线游戏。我用来管理高分系统的原始方法是在提交到php脚本(即javascript> HTML(表单)> PHP> DB)之前将一系列javascript变量传递到HTML表单中:Javascript游戏黑客预防
Javascript:
var score = 345345; //score after playing game
document.theform.score.value = score;
document.theform.submit();
HTML:
<form name="theform" action="scorehandler.php" method="post">
<input name="score" type="hidden" value="">
</form>
使用此方法但是可以让用户轻松地通过重新创建表单并提交自己的本事。
我得到的是通常的做法,以防止用户从黑客可能是做尽可能多的编码在服务器端尽可能(即使用PHP来替换尽可能多的代码尽可能的),但它似乎它可能会对游戏造成一些潜在的问题(例如,php的同步性)
有没有办法以某种方式隐藏客户端的html表单(以及相关的javascript vars)而不必重新编码php中的所有内容?还是有一些其他的标准解决方法呢?
任何帮助,非常感谢!
的JavaScript/HTML需要可以看出通过浏览器进行渲染和访问,因此没有确保这些的方法。你可以通过模糊处理来寻求安全性,但这通常不太适用。 –
没有办法保护html和js,因为它在客户端呈现,但为了防止恶意表单提交,您可以使用CSRF令牌,并且还有很多其他方法可以防止恶意输入。 –
相关阅读:http://stackoverflow.com/questions/3531968/why-is-client-side-validation-a-security-risk-as-opposed-to-server-side-validati http://stackoverflow.com/questions/13942498/should-you-validate-server-side-if-youre-validating-client-side - 尤其是第二个。 “绝对不要相信任何来自浏览器的内容。”用户可以完全控制浏览器。他们可以欺骗任何东西。 – Sumurai8