asp.net - 在 ASP.NET Identity 应用程序中留下后门的最佳方法是什么?
问题描述
我是公司内部客户端系统的开发人员,在某些情况下我必须使用用户帐户登录系统来检查错误或其他东西。由于密码是加密的,我不能只在数据库中查找它们并获得访问权限。
我发明的最好的东西是使用一个查询参数标志,比如?heyThisIsAdmin=soJustLetMeInWithoutAnyPasswords
它允许我输入任何密码并登录。
但我很理解安全问题。你能告诉我一些实现我想要但更强大和安全的方法吗?
解决方案
正如您所说,您提出的解决方案根本不安全,因为任何阅读代码或知道秘密的人都会使用魔术查询字符串来使用这种超能力。
更好的解决方案可能是在客户端平台上为自己创建一个帐户,但上面有一个特殊标志,允许您模拟用户帐户(或只是查看他们看到的内容)。这种机制当然需要一些发展。
请注意,即使使用此解决方案,该技巧也只能在您已经登录后才能完成。为了提高安全性,您还可能需要第二个身份验证因素(电子邮件、短信、TOTP...)
您需要在这里看到您想要实现的目标,将其作为应用程序的一项功能,而不是后门。您应该能够在不暴露您的应用程序的情况下向任何人解释它是如何工作的。因为它的力量在于:
- 你的密码
- 你的第二个因素(如果有的话)
- 您在帐户上设置了标志的事实
推荐阅读
- python - webargs 的字典 vs Marshmallow 数据类模式
- javascript - 如何在javascript中将列表转换为带有子项目的类别?
- python - 顺序调用时,Spark Data Frame 操作时间显着增长
- android - 在 pubspec.yaml 中使用 fluttertoast 时出现颤振构建问题
- scala - Flink(Scala):尝试在我的程序中使用窗口函数,但它报告类型不匹配
- python - 如何使用 pdoc 为 python 项目生成文档,包括私有/受保护的类
- javascript - 在 JavaScript / TypeScript 中使循环有点异步 / 等待
- angular - Angular2 +在输入时更改电子邮件输入值不起作用
- r - 将两个文件与两个重叠个人子集的年度二进制数据合并的问题
- android - Android Studio:变量意图可能尚未初始化