【问题标题】:PHP And jQuery - Chat SecurityPHP 和 jQuery - 聊天安全
【发布时间】:2018-07-07 18:36:46
【问题描述】:

我有一个无法解决的问题。

我为一个在线游戏建立了一个聊天室,我希望每个页面都有一个不同的聊天室。 网址是这样的 = play.php?plc=[arena/advanture/bank/...]

我有一个名为pages 的SQL 表,它定义了每一页。例如:

╔════╦══════════════╗
║ id ║  name        ║
╠════╬══════════════╣
║  1 ║ arena        ║
║  2 ║ advanture    ║
║  3 ║ bank         ║
║  4 ║ weapons      ║
╚════╩══════════════╝

每个页面都有他独特的计算,如果你被允许进入,或者你不能进入。 如果你不能,我会做header()exit;

我会解释它与问题的关系。

ajax文件如何知道页面是否成功服务,或者权限被拒绝和exited?

我考虑过隐藏<input>,但它会被破解。如果用户无法进入页面,他仍然可以将输入值更改为某个 id,并访问页面的聊天。

【问题讨论】:

  • 使用会话也许...?
  • 我认为你应该使用会话

标签: php ajax chat


【解决方案1】:

ajax 文件可以通过window.location 获取参数,但您应该在 php 中使用会话,否则用户可以操纵此值并读取所有聊天,即使他们不存在。

session_start();

$_SESSION['area'] = ...;

【讨论】:

  • 会话不会阻止用户更改地址栏中的查询字符串(因此,会话变量),除非查询字符串包含服务器端脚本可以解析的 ID
  • 是的,如果不检查是否允许用户进入此区域,则不应设置 $_SESSION['area']
  • 是的,因为会话也可以更改。所以我会在 play.php 中检查它。我说的对吗?
  • @ArielAharonson 服务器控制您的会话,您无法直接更改它。间接地,您可以更改发送到服务器的任何输入。假设你的 php 脚本强烈地验证用户是否应该被允许,这是非常安全的。
猜你喜欢
  • 1970-01-01
  • 2012-07-30
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
相关资源
最近更新 更多