4

我正在构建这个 web 应用程序,用户可以在其中使用 html 和 javascript 构建自己的在线演示文稿(这些上传将在 AWS S3 上,而不是在服务器本身上)。他们将他们的域名连接到应用程序。我有以下设置,但想知道这在安全性和/或风险方面是否是最安全的设置,谢谢您的帮助!

全局设置

  1. 当用户从非 sl 域 ( http://userdomain.com ) 登录到管理员时,登录表单将凭据直接发布到 SSL 登录域 ( https://logindomain.com )

  2. 在 logindomain.com 上会发生验证,当成功时会启动一个新的 PHP 会话。该会话仅对 userdomain.com 有效。session_id 也保存在该用户帐户的数据库中。

  3. 然后这个 session_id 通过 $_GET (2-way encrypted) 发送到 userdomain.com

  4. 添加 userdomain.com 发送的 session_id 已验证到数据库中的用户帐户,如果确定,则基于此 session_id 启动新会话。新会话完成后,会在数据库中重新生成和更新 session_id。此会话在有限的时间内有效(在会话超时方面,但也在数据库中)

  5. 然后将用户转发到应用程序(非 ssl),因为他已登录

  6. 在每个页面上,用户会话都根据 session_id 和有效时间窗口验证到数据库。

该服务器不是共享主机设置,因此没有其他虚拟主机共享会话数据。

此登录设置是否安全或如何使其更安全?

谢谢!干杯

克。丹尼斯

4

1 回答 1

3

当用户从非 sl 域 ( http://userdomain.com) 登录到管理员时,登录表单将凭据直接发布到 SSL 登录域 ( https://logindomain.com)

这表明它通过 HTTP 服务的形式。因此,它可以被拦截和编辑,以便攻击者捕获凭据。这是不安全的。

然后将用户转发到应用程序(非 ssl),因为他已登录

任何包含(或将包含)需要安全的数据的页面都应通过 SSL 发送。一旦用户登录,您不应该离开 SSL,这样做会使您受到Firesheep 式攻击

于 2013-02-22T07:37:18.343 回答