|
|
1
19
其中一些想法给用户带来了不便,要么强迫他们更改密码,要么占用他们的桌面进行调试。 Markc的想法是最好的:通过提供用户名和超级用户凭据,而不是用户的凭据,来增强您的身份验证逻辑,允许超级用户以特定用户的身份登录。 我过去是这样做的(伪python):
换言之,如果用户名和密码没有通过身份验证,如果密码有冒号,那么它实际上是由冒号连接的管理员用户名和管理员密码,因此如果它们是正确的管理用户名和密码,请以用户名登录。 这意味着您可以以用户身份登录,而不知道他们的秘密,也不会给他们带来不便。 |
|
|
2
5
对于我们的web应用程序,我们使用一个过程,由于缺乏更好的术语,该过程被定义为“劫持”用户的帐户。 基本上,管理员只需点击一个按钮就可以“劫持”用户的帐户。在代码中,您只需使用一个唯一标识符(用户id在不太安全的环境中工作),然后在会话中建立必要的凭据,以便它们可以在该用户的配置文件中工作。为了获得更安全的环境,您可以为每个用户使用唯一的哈希值。 为了确保这种劫持方法是安全的,它总是首先验证请求是由具有适当权限的经过身份验证的管理员发出的。因此,有必要劫持管理员的会话或捕获他们的身份验证凭据,以便有人利用应用程序中的劫持功能。 |
|
|
3
2
我有四个想法。在我打字的时候,其中3个已经被推荐了(所以我投了赞成票) 想法3的变体-模仿: 为了使其与正常登录“尽可能相同”,只需进行最少的代码更改,您可以通过提供管理员凭据和备用用户名(例如以管理员:用户、管理员密码登录)来添加在登录时直接模拟的能力。系统会将此视为使用userpassword以用户身份登录。 想法4:你能访问密码存储吗?如果是这样,请暂时用已知密码的哈希值替换用户的哈希值。(密码通常在线存储在数据库中。SQL查询工具可以进行交换) |
|
|
4
1
管理员应该能够更改用户的密码。将用户的密码更改为您知道的密码。然后,您可以以该用户身份登录。 在您完成调试后,告诉用户重置他/她的密码。 |
|
|
5
1
通常通过某种远程控制软件,可以用来查看他们的桌面。如果它们位于Windows终端服务器上,则可以使用内置的管理工具。否则,我会在内部网络上使用VNC之类的东西,或者使用LogMeIn之类的外部服务( http://www.logmein.com/ ). |
|
|
6
0
|
|
|
7
0
我们在web应用程序中使用的解决方案是让authN/authZ返回所需的用户作为有效用户。我们通过一个管理员功能来设置伪装,然后当我们询问当前登录的用户(current_user)时,我们处理伪装:
|