假设我的 Web 应用程序使用 AWS 密钥管理服务获取加密密钥,但我不想在开发时使用该服务 - 我想使用返回硬编码值的模拟。如何在不打开黑客在实时服务器上利用此漏洞的可能性的情况下交换代码?即黑客将应用程序配置为使用无用版本。
下面是基于配置值注册存储服务的示例代码。这意味着我可以在不需要互联网连接的情况下进行开发......
c.RegisterType<IStorageOperations>(new InjectionFactory(c =>
configuration.GetValue<bool>("UseMock:Storage") ?
(IStorageOperations) new FileOperations() :
new S3StorageService()));
我认为最安全的做法是手动更改代码。尽管问题变成了记住将其改回来。