使用SSL域登录非ssl域上的webapp

时间:2013-02-22 07:33:19

标签: php security session ssl login

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

全局设置

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

    < / LI>
  2. 在logindomain.com上,验证发生,并且成功启动新的PHP会话。该会话仅对userdomain.com有效。 session_id也保存在此用户帐户的数据库中。

  3. 然后将此session_id通过$ _GET(双向加密)发送到userdomain.com

  4. 添加userdomain.com,将已发送的session_id验证到数据库中的useraccount,如果可以,则基于此session_id启动新会话。新会话完成后,将在数据库中重新生成并更新session_id。此会话在有限时间内有效(在会话时限,但也在数据库中)

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

  6. 在每个页面上,基于session_id和有效的时间窗口向用户会话验证用户会话。

  7. 服务器不是共享主机设置,因此没有其他虚拟主机共享sesssion数据。

    此登录设置是安全的还是如何使其更安全?

    谢谢!干杯

    克。丹尼斯

1 个答案:

答案 0 :(得分:3)

  

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

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

  

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

任何包含(或将包含)需要安全的数据的页面都应通过SSL发送。一旦用户登录,您就不应该离开SSL,这样做会使您暴露于Firesheep-style attacks