Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET。对于任何非Azure部署,在*.config文件中管理敏感数据的最佳做法是什么_Asp.net_Security_Encryption - Fatal编程技术网

ASP.NET。对于任何非Azure部署,在*.config文件中管理敏感数据的最佳做法是什么

ASP.NET。对于任何非Azure部署,在*.config文件中管理敏感数据的最佳做法是什么,asp.net,security,encryption,Asp.net,Security,Encryption,这篇文章与下面的链接有些相似。不幸的是,我没有足够的声誉在那里问一个问题,所以我在这里问 如果您部署到Azure,上面的帖子似乎效果不错,因为Azure为您提供了一个UI来存储敏感数据,例如;密码和钥匙。因此,不需要外部文件。然而,若我并没有部署到Azure,那个么这个功能被假定为不能通过其他网络托管公司使用,所以这个答案不适用 我的问题是,保护敏感数据不通过internet传输和防止恶意用户获取包含敏感数据的*.config文件的最佳方法是什么?下面是我的一些想法 1.)将敏感数据放在目录树

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

如果您部署到Azure,上面的帖子似乎效果不错,因为Azure为您提供了一个UI来存储敏感数据,例如;密码和钥匙。因此,不需要外部文件。然而,若我并没有部署到Azure,那个么这个功能被假定为不能通过其他网络托管公司使用,所以这个答案不适用

我的问题是,保护敏感数据不通过internet传输和防止恶意用户获取包含敏感数据的*.config文件的最佳方法是什么?下面是我的一些想法

1.)将敏感数据放在目录树上两个文件夹的外部文件(AppSettingsCrets.config)中

2.)将敏感数据放在同一项目中的外部文件(AppSettingsCrets.config)中,但是否将文件的生成操作设置为“无”

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


在*.config文件中保护敏感数据的原因是,如果恶意用户试图获取包含敏感数据的文件,则会阻止他们读取敏感数据。这三个选项似乎只解决了第一个问题(防止敏感数据通过internet传输),但选项3似乎也只解决了防止获取*.config文件的恶意用户读取敏感内容的问题。如果是这样的话,那么关于将敏感数据放在什么文件以及该文件的位置,这三个选项似乎都没有意义;只需加密web.config文件中包含敏感数据的部分,然后继续。我遗漏了什么吗?

我会尽力给出你已经提到的建议。最安全的方法是不要在web配置中尽可能多地放置敏感数据,如果确实需要,您必须使用选项3对其进行加密,然后继续

等等,继续干什么?您必须转到应用程序的其他安全方面。保护web配置节并不能保证完全保护。您必须加强服务器、安全通信、测试或进行在线漏洞测试,甚至源代码扫描。这听起来可能有些过分,但如果你真的想缓解安全问题,我提到的这些是必须的。我说缓解是因为现在你和我都不再安全了!除非您未连接到internet,否则不可用。:)

更新:这些工具可能对您有所帮助。有些是免费的,有些不是。这不仅限于此

  • -用于pentesting(免费)
  • -用于系统强化(企业)
  • -技术堆栈,如操作系统、数据库、Web服务器等(仅限会员资格)
  • -用于源代码扫描(企业)
如果您不想麻烦自己去做,您可以将此安全测试委托给第三方


好了,我就这些了。我出去了!:)

我创建了两个方便的批处理文件,对
web.config
文件的
appSettings
connectionStrings
部分进行加密和解密:

EncryptWebConfig.bat 解密webconfig.bat
感谢您的回复和方法链接。关于您提到的其他安全措施,您是否有任何在线资源对此进行讨论,并认为这些资源对您有帮助?您是对的,我正试图在应用程序内部和internet上的整个通信链中建立安全性。
@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
@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