我试图更新/维护一个较旧的网站,该网站最初是用经典ASP/VBScript编写的,后来添加了PHP页面。我想设置它,以便PHP处理登录,但是登录状态可以在PHP和ASP/VBScript之间共享。请注意,页面和语言是相当混杂的--在网站上花费时间的人可能会在每种语言中遇到几个不同的页面,没有特定的顺序。
(最终,我希望它能用PHP完全重写,但我必须一次吃一口大象;现在我只想提高安全性。)
让我们假设我已经成功地登录并使用类似于phpPass的方法验证了PHP中的用户。我如何告诉ASP/VBScript页面他们刚刚拉出他们已经登录了?我怎么才能安全地做这件事呢?
(谢谢你的帮助!)
发布于 2017-02-28 22:52:32
我在这个问题上找到的最好的答案是以下几点。特定于在经典ASP和ASP.net之间共享登录,但是方法完全相同:
正如您可能已经知道的,经典的asp和asp.net不能共享相同的会话状态,因此您确实需要有一种机制来从一个登录到另一个。 我要做的是:当有人登录时,创建一个您为该用户保存在数据库中的唯一GUID。当您从一个站点跳到另一个站点时,将GUID传递到查询字符串中。当您尝试自动登录到另一个站点时,请查找该GUID,并查看它是否与任何人连接。如果是的话,就登录。 这样,您就不会传递用户可以猜测或解密的任何内容。
此外,向数据库添加时间戳也是明智的;GUID应该只有效一两秒钟。登录PHP端,然后切换到ASP并检查GUID。
不完全安全,但似乎和我要找到的一样安全。
来源:https://stackoverflow.com/a/921575/339440
编辑以添加:每个注释,也记录用户的IP地址到数据库,并比较它在ASP方面。不准传送!
更正:在这种情况下,"GUID“是用词不当的。这里你需要的是一个随机的字符串,而不是一个GUID。GUID是具有少数几种特定格式之一的半随机结构,在这里不适用。
发布于 2016-09-17 11:28:35
您不能通过经典ASP/VBScript和PHP共享会话,因为它们以不同的方式创建/使用会话。我的解决方案不是那么安全,但会奏效的:
这将处理it...although,而不是那么安全!
https://stackoverflow.com/questions/39415393
复制相似问题