这篇文章有点类似于下面的链接。不幸的是,我没有足够的声誉在那里问一个问题,所以我在这里问。
困惑于在Web.config中存储密码用于Azure部署的正确过程是什么
如果您正在部署到Azure,上面的帖子似乎工作得很好,因为Azure为您提供了一个UI来存储敏感数据,如密码和密钥。因此,否定了对外部文件的需求。然而,如果我没有部署到Azure,那么这个功能被假定不能通过其他网站托管公司获得,所以这个答案不适用。
我的问题是,保护敏感数据不被互联网传输和恶意用户设法获取包含敏感数据的*.config文件的最佳方法是什么?以下是我所想出的一些想法。
1.)将敏感数据放入一个外部文件(AppSettingsSecrets.config)中,即目录树上的两个文件夹?
2.)将敏感数据放置在同一个项目中的外部文件(AppSettingsSecrets.config)中,但将文件的生成操作设置为None
3.)将敏感数据放置在web.config文件中,但加密包含敏感数据的文件部分?
保护*.config文件本身中的敏感数据的原因是,如果恶意用户设法获取包含敏感数据的文件,则无法读取敏感数据。这三个选项似乎只解决了第一个问题(防止敏感数据通过internet传输),但选项3似乎也只解决了防止恶意用户获取*.config文件读取敏感内容的问题。如果是这样的话,那么这三个选项似乎都与放置敏感数据的文件以及该文件的位置无关;只需加密包含敏感数据的web.config文件部分,然后继续前进。我是不是遗漏了什么?
发布于 2017-02-08 14:18:51
我将尽力提出你已经提到的我的建议。最安全的方法是不要将敏感数据尽可能多地放在web配置中,如果它们真的需要的话,您必须使用这个方法加密它,这是选项3,然后继续前进!
等等,继续说什么?您必须继续讨论应用程序的其他安全方面。保护web配置部分不能保证完全的保护。您必须加强您的服务器,安全通信,阻止或进行在线漏洞测试,甚至源代码扫描。这可能听起来有些过分,但如果你真的想减轻安全问题,我提到的这些都是必须的。我说减轻,因为现在有一天你我不再安全了!除非你没有连接到互联网。:)
更新: --这些工具可能会帮助您。有些是自由的,有些则不是。不仅仅限于这个
如果您不想自己去做,您可以将这个安全测试委托给第三方,比如白光石。
好吧,这就是我的全部。我出局了!:)
发布于 2017-02-10 12:07:48
我创建了两个方便的批处理文件,用于加密和解密appSettings和connectionStrings文件的web.config部分:
EncryptWebConfig.bat
@ECHO OFF
REM ENCRYPT THE CONTENTS CONTAINED IN THE appSettings SECTON OF THE WEB.CONFIG FILE
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "appSettings" "Folder path to web.config"
REM ENCRYPT THE CONTENTS CONTAINED IN THE connectionStrings SECTON OF THE WEB.CONFIG FILE
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" "Folder path to web.config"
REM PAUSE FOR VERIFICATION ON THE SCREEN OF WHAT HAPPENED.
PAUSE
@ECHO ONDecryptWebConfig.bat
@ECHO OFF
REM DECRYPT THE CONTENTS CONTAINED IN THE appSettings SECTON OF THE WEB.CONFIG FILE
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pdf "appSettings" "Folder path to web.config"
REM DECRYPT THE CONTENTS CONTAINED IN THE connectionStrings SECTON OF THE WEB.CONFIG FILE
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pdf "connectionStrings" "Folder path to web.config"
REM PAUSE FOR VERIFICATION ON THE SCREEN OF WHAT HAPPENED.
PAUSE
@ECHO ONhttps://stackoverflow.com/questions/42086995
复制相似问题