我正在构建这个webapp,用户可以使用html和javascript构建自己的在线演示文稿(这些上传将在AWS S3上,而不是在服务器本身上)。他们将域名连接到应用程序。我有以下设置,但想知道这是否是最安全的设置和/或风险是什么,谢谢你的帮助!
全局设置
当用户从非sl域(http://userdomain.com)登录管理员时,loginform会将凭据直接发布到SSL登录域(https://logindomain.com)
< / LI>在logindomain.com上,验证发生,并且成功启动新的PHP会话。该会话仅对userdomain.com有效。 session_id也保存在此用户帐户的数据库中。
然后将此session_id通过$ _GET(双向加密)发送到userdomain.com
添加userdomain.com,将已发送的session_id验证到数据库中的useraccount,如果可以,则基于此session_id启动新会话。新会话完成后,将在数据库中重新生成并更新session_id。此会话在有限时间内有效(在会话时限,但也在数据库中)
然后用户被转发到应用程序(非ssl)因为他已登录
在每个页面上,基于session_id和有效的时间窗口向用户会话验证用户会话。
服务器不是共享主机设置,因此没有其他虚拟主机共享sesssion数据。
此登录设置是安全的还是如何使其更安全?
谢谢!干杯
克。丹尼斯
答案 0 :(得分:3)
当用户从非sl域(
http://userdomain.com
)登录管理员时,loginform会将凭据直接发布到SSL登录域(https://logindomain.com
)
这表明它通过HTTP服务的形式。因此可以拦截和编辑它,以便攻击者捕获凭据。这不安全。
然后用户被转发到应用程序(非ssl),因为他已登录
任何包含(或将包含)需要安全的数据的页面都应通过SSL发送。一旦用户登录,您就不应该离开SSL,这样做会使您暴露于Firesheep-style attacks。