【发布时间】:2013-06-06 18:13:06
【问题描述】:
我想让使用 bcrypted 密码和基于会话的身份验证的 Web 应用程序的用户能够在一段时间内授予我们的技术支持团队对其帐户的访问权限,并可以选择手动撤销访问权限。是否有解决此问题的安全方法?
我正在使用 LAMP 堆栈。
理想情况下,可以手动授予访问权限(例如当用户与我们通电话时)或自动授予访问权限(例如当用户通过我们的应用程序向我们发送电子邮件或在我们的支持论坛中发帖时)。
我可以想象的一种方法如下所示:
- 用户单击应用程序中的按钮以允许技术支持访问他们的帐户。
- 浏览器会向服务器发送一个请求,服务器会将用户的会话标识符、CSRF 令牌等存储在我们的支持数据库中。
- 支持数据库可以让支持技术人员找到正在与之交谈的客户,然后使用相同的会话标识符等登录到用户的帐户。
- 手动撤销访问会从支持数据库中删除会话标识符。
但是,它必然将技术支持限制在会话长度上,这可能不够长——尤其是在电子邮件支持的情况下。
有没有更好或更标准的方法来解决这个问题?
编辑 1:我可以做一些事情,比如生成一个允许技术人员通过后门登录的新令牌,但我希望尽可能避免使用后门。
我想另一种可能性是提供一个完全开放的后门,该后门只能通过 SSH 隧道访问服务器。仍然是一个后门,但至少可以访问它的人非常有限。
【问题讨论】: