gpt4 book ai didi

security - 在站点之间传递凭据

转载 作者:行者123 更新时间:2023-12-04 19:24:50 26 4
gpt4 key购买 nike

我在具有两个不同域的两个不同服务器上运行两个不同站点。一个站点正在运行 Joomla,另一个站点正在运行 Moodle。我已将 Moodle 服务器配置为基于 Joomla 站点上的用户表进行身份验证,因此我们拥有用户信息的权威来源。

我想做的是:在有人登录 Joomla 站点后,提供一个指向 Moodle 站点的链接,该站点将让他们静默登录,有点假装单点登录解决方案。 Joomla 中的密码是 MD5 的,每个都有自己的 secret 盐。

如何解决这个问题的第一个想法是告诉 Moodle 密码是以纯文本形式存储的,然后通过隐藏的表单输入,在他们点击链接时发送加密的密码。除了明显的安全问题外,这还意味着如果他们尝试通过 Moodle 界面登录,他们需要输入一个巨大的 MD5 字符串,因为 Moodle 认为他们的密码就是这样。

我一直在考虑更改 Moodle 中的身份验证模块,以便如果提交的密码符合某些标准(例如:它是 32 个十六进制字符),那么在与 Joomla 版本进行比较之前不要对其进行 MD5 处理——问题是任何人都可以(在发现加密密码后)然后使用它登录。我需要一些特殊的方式将加密密码从 Joomla 发送到 Moodle,并向 Moodle 发出信号以区别对待该登录请求。

有什么想法吗?

最佳答案

您可以对安全单点登录解决方案执行以下操作:

  • 为 Joomla 用户生成一个随机(带有 PRNG) token (存储这个)
  • 在内部(通过 Web 服务等,通过 HTTPS 或本地数据源保存)将此 token 发送到 Moodle
  • 在发送此 token 时,您还应告知 Moodle 属于哪个 token 的用户 ID(因此发送 token + 用户 ID)
  • 将此 token + 用户 ID 存储在 Moodle
  • 使用此 token 在 Joomla 中创建与此 token 的链接(您可以在首次使用后 token 过期后立即使用查询字符串,但 POST 是一个更好的主意)
  • 当您在 Moodle 中看到此 token 时,请登录相关用户并使 token 过期(这样可以安全地防止回复攻击等)
  • 关于security - 在站点之间传递凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/351873/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com