如何在一个文件上写两个单词并避免数据注入


how do i write literally two words on a file and avoid data injection?

问题很简单。我制作了一个小型HTML5游戏,由于我的一些朋友对此非常兴奋,我想建立一个名人堂。这个想法只是一个简单的csv,就像一样

Name,Points,Date
AAA,15,2012-08-25

等等。;我该怎么做?我的想法是用ajax请求将数据发送到php文件,php文件反过来解析并写入csv,但我真的无法想象如何在不被注意到的情况下将数据发送给php文件(允许人们输入虚假分数)。

此外,这必须非常简单,因此,没有node.js等。

没有简单的方法可以做到这一点,因为如果没有服务器端验证,它仍然可能是伪造的——这就是你看到的大多数Flash游戏得分高得离谱的原因。

可以使用的一种方法是基于时间的加密。这并不能使其万无一失,但确实使手动伪造变得非常烦人和麻烦。

例如,您可以使用MS中的当前时间戳作为密钥来加密分数,并将哈希和时间发送到服务器。在服务器端,您可以使用时间作为密钥来解密哈希。如果时间与当前服务器时间相差太远(需要时间发送分数),则丢弃分数。

一个示例请求是:

page.php?t={timestamp}&name={name}&h={encryptedscore}

其中,t是MS中的时间,name是用户的名称,h是时间和分数的散列。

这并不完全安全,但会让任何没有能力实时编辑脚本的人更难伪造。

如果这是一个直接的AJAX调用,那么没有什么可以阻止任何人打开Fiddler并修改http帖子。只需验证您从客户端收到的输入即可。请确保数字是数字,并且日期是有效日期。

你甚至在使用SQL吗?SQL注入是指人们从客户端获取输入,并将其直接连接到SQL查询中。