【问题标题】:Session-based Server Side Data Setting and Retrieval基于会话的服务器端数据设置和检索
【发布时间】:2012-07-26 13:31:04
【问题描述】:

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

我目前的设置:

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

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

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

【问题讨论】:

    标签: php javascript jquery web-services model-view-controller


    【解决方案1】:

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

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

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

    听起来像是一个计划。

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

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

    【讨论】:

    • 谢谢!关于最后一个问题 - 如果他们访问 .php 页面,它实际上会吐出 XML,就好像我的 Javascript 页面调用了它并且它正在返回一个答案。它甚至仅仅因为调用了 PHP 页面就增加了“尝试”和变量。对我来说似乎很奇怪...... :)
    • @SpencerAllenGardner 我认为没有办法阻止用户直接访问链接。
    【解决方案2】:

    看看这个。希望对你有帮助

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多