0

我有一个与流行的论坛软件 (phpBB) 集成的网站。我已经设置好了,所以自动登录到主站点的用户也可以登录到论坛软件。我通过同时通过论坛的 API 进行身份验证来做到这一点。

当有人注册该站点时,一个条目进入主站点数据库,一个条目进入论坛用户数据库(使用论坛 API)。

论坛用户表的主 ID 存储在主站点用户数据库的列中。这是在注册时保存的:注册过程首先创建一个论坛用户,然后将 ID 传递回在主站点中创建用户的查询。

当用户登录时,如果他们通过主站点进行身份验证,则会提取该 ID 并将其传递到论坛登录 API 以登录正确的人。

然而,一件奇怪的事情似乎是随机发生的:每 30 或 40 个注册的人中就有一个人在主站点用户表中得到一个不属于他们自己的论坛用户 ID。我知道如何查找这些问题并根据具体情况进行修复,并有脚本来执行此操作,但这似乎更像是一个创可贴,而不是修复。

在链接这样的数据时,这是一个常见问题,还是这似乎与软件更具体?由于这个问题的随机性,它很难调试。

4

2 回答 2

1

我会怀疑会话管理。您是有意还是无意地重用会话 ID?

于 2009-01-22T22:16:00.530 回答
0

我用 vbulletin 做了类似的事情,直接使用论坛的 mysql 数据库来验证主站点和其他站点(它们都在同一台机器上)......

在您的情况下,我会在站点的数据库中添加不在 phpBB 数据库中的特定于站点的字段,并通过 user_id 将其链接到 phpbb ...它可能是插入两个数据库的主要站点上的一种形式(一些在主站点数据库中,其他在 phpBB 数据库中 - 具有更多权限字段),我会使用我自己的非标准验证码,比如生成一个扭曲的图像“x 和 y 是什么”,其中 x 和 y 作为随机数,+ 可能替换为其他操作,或“输入单词 ORANGE”或“再次输入您的用户名”的图像

我会禁用默认的 phpBB 注册...有很多机器人知道如何使用它...

这将保证您有一个信息来源,并且您可以一次填写所有信息。

于 2009-03-02T12:11:01.447 回答