首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET.为任何非Azure部署管理*.config文件中的敏感数据的最佳实践是什么?

ASP.NET.为任何非Azure部署管理*.config文件中的敏感数据的最佳实践是什么?
EN

Stack Overflow用户
提问于 2017-02-07 10:08:14
回答 2查看 691关注 0票数 1

这篇文章有点类似于下面的链接。不幸的是,我没有足够的声誉在那里问一个问题,所以我在这里问。

困惑于在Web.config中存储密码用于Azure部署的正确过程是什么

如果您正在部署到Azure,上面的帖子似乎工作得很好,因为Azure为您提供了一个UI来存储敏感数据,如密码和密钥。因此,否定了对外部文件的需求。然而,如果我没有部署到Azure,那么这个功能被假定不能通过其他网站托管公司获得,所以这个答案不适用。

我的问题是,保护敏感数据不被互联网传输和恶意用户设法获取包含敏感数据的*.config文件的最佳方法是什么?以下是我所想出的一些想法。

1.)将敏感数据放入一个外部文件(AppSettingsSecrets.config)中,即目录树上的两个文件夹?

2.)将敏感数据放置在同一个项目中的外部文件(AppSettingsSecrets.config)中,但将文件的生成操作设置为None

3.)将敏感数据放置在web.config文件中,但加密包含敏感数据的文件部分?

保护*.config文件本身中的敏感数据的原因是,如果恶意用户设法获取包含敏感数据的文件,则无法读取敏感数据。这三个选项似乎只解决了第一个问题(防止敏感数据通过internet传输),但选项3似乎也只解决了防止恶意用户获取*.config文件读取敏感内容的问题。如果是这样的话,那么这三个选项似乎都与放置敏感数据的文件以及该文件的位置无关;只需加密包含敏感数据的web.config文件部分,然后继续前进。我是不是遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-08 14:18:51

我将尽力提出你已经提到的我的建议。最安全的方法是不要将敏感数据尽可能多地放在web配置中,如果它们真的需要的话,您必须使用这个方法加密它,这是选项3,然后继续前进!

等等,继续说什么?您必须继续讨论应用程序的其他安全方面。保护web配置部分不能保证完全的保护。您必须加强您的服务器,安全通信,阻止或进行在线漏洞测试,甚至源代码扫描。这可能听起来有些过分,但如果你真的想减轻安全问题,我提到的这些都是必须的。我说减轻,因为现在有一天你我不再安全了!除非你没有连接到互联网。:)

更新: --这些工具可能会帮助您。有些是自由的,有些则不是。不仅仅限于这个

  • OWASP (免费)
  • 内苏斯 -用于系统强化(企业)
  • 顺式猫 -技术栈,如OS、数据库、WebServer等(仅限成员资格)
  • IBM AppScan -用于源代码扫描(企业)

如果您不想自己去做,您可以将这个安全测试委托给第三方,比如白光石

好吧,这就是我的全部。我出局了!:)

票数 1
EN

Stack Overflow用户

发布于 2017-02-10 12:07:48

我创建了两个方便的批处理文件,用于加密和解密appSettingsconnectionStrings文件的web.config部分:

EncryptWebConfig.bat

代码语言:javascript
运行
复制
@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 ON

DecryptWebConfig.bat

代码语言:javascript
运行
复制
@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 ON
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42086995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档