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

标签 php security session ssl authentication

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

全局设置

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

  2. 在 logindomain.com 上进行验证,并在成功时启动新的 PHP session 。该 session 仅对 userdomain.com 有效。 session_id 也保存在该用户帐户的数据库中。

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

  4. 添加 userdomain.com 发送的 session_id 已验证到数据库中的 useraccount,如果正常,将根据此 session_id 启动新 session 。新 session 完成后,将在数据库中重新生成和更新 session_id。此 session 在有限的时间内有效(在 session 超时方面以及在数据库中)

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

  6. 在每个页面上,根据 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/

相关文章:

PHP - 在函数内设置 session

Node.js TCP 套接字 session

php - 在 SQL Server 上使用 PDO 时,为什么不能按列别名进行 ORDER BY?

javascript - 如何将ajax请求数据保存到不同的变量中

java - 使用 veracode 工具的代码中的安全漏洞

node.js - 在 Node.js Express 日志文件中发现奇怪的 http 请求

php - 使用 PDO 将图像位置上传到数据库并将图像文件上传到目录?

javascript - 使用 PHP (openssl_encrypt) 发出加密,然后使用 JS (CryptoJS) 解密

azure - 如何了解 Azure 云中托管的 WebApp 的 OpenSSL 版本

php - 在 codeigniter 项目之间共享 session 存储