基于会话的服务器端数据设置和检索


Session-based Server Side Data Setting and Retrieval

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

我当前的设置:

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

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

  1. 这是一种安全的方法来存储分数以便最终插入数据库吗
  2. 我最终也必须在比赛结束时(甚至在比赛中期)从服务器上取下比分。我应该创建一个简单的"getter"PHP页面来降低分数,然后访问会话变量并将其发送到客户端吗
  3. 目前,用户实际上可以访问php服务器端页面,因为它与实际测试位于同一文件夹中。这是moooost,很可能是一个no-但是隐藏这个仅限服务器的文件以避免用户窥探(而不必使用身份验证)的常见做法是什么

这是一种安全的方法来存储分数以便最终插入数据库吗?

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

我最终也必须在比赛结束时(甚至在比赛中期)从服务器上取下比分。我应该创建一个简单的"getter"PHP页面来降低分数,然后访问会话变量并将其发送到客户端吗?

听起来像个计划。

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

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

看看这个。我希望这将帮助你

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