我正在构建这个网络应用程序,用户可以在其中使用 html 和 javascript 构建他们自己的在线演示(这些上传将在 AWS S3 上,而不是在服务器本身上)。他们将域名连接到应用程序。我有以下设置,但想知道这在安全性和/或风险方面是否是最安全的设置,感谢您的帮助!
全局设置
当用户从非 sl 域 ( http://userdomain.com ) 登录到管理员时,登录表单将凭据直接发布到 SSL 登录域 ( https://logindomain.com )
在 logindomain.com 上进行验证,并在成功时启动新的 PHP session 。该 session 仅对 userdomain.com 有效。 session_id 也保存在该用户帐户的数据库中。
然后这个 session_id 通过 $_GET(双向加密)发送到 userdomain.com
添加 userdomain.com 发送的 session_id 已验证到数据库中的 useraccount,如果正常,将根据此 session_id 启动新 session 。新 session 完成后,将在数据库中重新生成和更新 session_id。此 session 在有限的时间内有效(在 session 超时方面以及在数据库中)
用户随后被转发到应用程序(非 ssl),因为他已登录
在每个页面上,根据 session_id 和有效时间窗口向数据库验证用户 session 。
服务器不是共享主机设置,因此没有其他共享 session 数据的虚拟主机。
此登录设置是否安全或如何使其更安全?
谢谢!干杯
克。丹尼斯
最佳答案
When a user login to the admin from a non-sl domain (
http://userdomain.com
), the loginform post the credentials directly to the SSL login domain (https://logindomain.com
)
这表明它通过 HTTP 提供的表单。因此,它可以被拦截和编辑,以便攻击者捕获凭据。这是不安全的。
The user is then forwarded to the application (non-ssl) because he is loggedin
任何包含(或将包含)需要安全数据的页面都应通过 SSL 发送。一旦用户登录,您不应该离开 SSL,这样做会使您暴露于 Firesheep-style attacks .
关于php - 使用 SSL 域登录非 ssl 域上的 webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019068/