2

我有一个关于如何处理当前项目的理论问题。这是一个使用 JS + PHP 的相当简单的匹配测验。我只是在服务器上处理业务逻辑(答案检查、分数更新),例如大致遵循 MVC 约定。

我目前的设置:

  • HTML + JS 页面允许用户将答案拖放到问题上。成功删除后,问题 + 答案组合将发送到以下位置:
  • 基于 XML 文件检查答案正确性的服务器端 PHP 页面。我在一些 XML 客户端中返回了一些数据,例如真/假和某个问题的尝试次数。此外,如果答案是正确的,我会在服务器上增加一个会话变量来跟踪用户的分数。

我的问题围绕着设置上述会话变量以跟踪分数的最佳实践。我知道,在计算机关闭、浏览器意外关闭等情况下,更持久的设置很可能更可取……但严格基于此设置 -

  1. 这是存储最终插入数据库的分数的安全方法吗?
  2. 我最终将不得不在游戏结束时(或者甚至是游戏中期,就此而言)从服务器上拉下分数。我是否应该创建一个简单的“getter”PHP 页面来降低分数,然后访问会话变量并将其发送给客户端?
  3. 目前,用户实际上可以访问 php 服务器端页面,因为它与实际测验位于同一文件夹中。这很可能是一个禁忌 - 但是隐藏这个仅限服务器的文件不让用户窥探(无需使用身份验证)的常见做法是什么?
4

2 回答 2

2

这是存储最终插入数据库的分数的安全方法吗?

它是安全的。但是我不明白为什么您不会在数据库中更改分数时更新它们。这样,它将是持久的。

我最终将不得不在游戏结束时(或者甚至是游戏中期,就此而言)从服务器上拉下分数。我是否应该创建一个简单的“getter”PHP 页面来降低分数,然后访问会话变量并将其发送给客户端?

听起来像是个计划。

目前,用户实际上可以访问 php 服务器端页面,因为它与实际测验位于同一文件夹中。这很可能是一个禁忌 - 但是隐藏这个仅限服务器的文件不让用户窥探(无需使用身份验证)的常见做法是什么?

只要文件是 .php 文件并由网络服务器解析,用户就只能对文件进行请求,仅此而已(如果我理解的问题是正确的)。

于 2012-07-27T20:27:36.143 回答
0

看看这个。我希望这能帮到您

http://www.linuxforu.com/2009/01/server-side-sessions/

于 2013-01-31T10:45:32.267 回答