我知道这并不安全。但是,我至少想做出某种尝试,至少做我需要做的事情。
我们有一个使用 IE 浏览器控件构建的自定义客户端。我无法改变这一点,并且改变它也不在这个问题的范围内。问题是,如果用户在此应用程序中执行弹出打开窗口的操作,则会在 IE 中打开该窗口,而不是在客户端应用程序中。
我们有一些导出到 CSV 和打开新窗口的打印功能。他们打印或导出的信息取决于访问控制。因此,当窗口在 IE 中弹出时,他们并没有登录 IE;而是登录到 IE。所以没有访问控制。我需要能够将 session 传递给 IE,以便用户登录并打印适当的信息或导出到 csv。
不一定需要诺克斯堡的安全。它不适用于公共(public)网站,也不保证数据安全。但是,有没有办法在不完全忽略所有安全性的情况下实现这一目标?
最佳答案
创建一个 token 并将其存储在您的数据库中,并在弹出窗口之前与当前用户相关。为 token 指定 60 秒的过期时间(根据需要调整)并将其添加到弹出窗口 url 的末尾。当该 URL 被点击时,读取 token 及其与用户的关联。从那里,您应该能够访问 ACL 控件。
您不会转移 session ,但您会知道哪个用户正在请求弹出窗口。希望对您有帮助...
警告:这不是很安全,因为 token 很容易受到中间人攻击。添加过期功能是为了限制这种可能性。这种方法可以被认为是默默无闻的安全性。
关于php - 将 session 安全地传递到另一个浏览器的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086353/