簡體   English   中英

ASP.NET。 對於任何非Azure部署,在* .config文件中管理敏感數據的最佳實踐是什么?

[英]ASP.NET. What is best practices for managing sensitive data in *.config files for any non-Azure deployment

這篇文章有點類似於下面的鏈接。 不幸的是,我沒有足夠的聲譽在那里問一個問題,所以我在這里問這個問題。

對於在Azure部署中將密碼存儲在Web.config中的正確過程感到困惑

如果您要部署到Azure,則上面的帖子似乎運行良好,因為Azure為您提供了一個UI來存儲敏感數據,例如: 密碼和密鑰。 因此,無需外部文件。 但是,如果我沒有部署到Azure,則假定此功能無法通過其他Web托管公司使用,因此該答案不適用。

我的問題是,什么是保護敏感數據免受Internet傳播和惡意用戶攻擊的最佳方法?這些惡意用戶設法獲取包含敏感數據的* .config文件? 我的一些想法如下。

1.)將敏感數據放置在目錄樹上兩個文件夾中的外部文件(AppSettingsSecrets.config)中嗎?

2.)將敏感數據放置在同一項目中的外部文件(AppSettingsSecrets.config)中,但將文件的構建操作設置為None

3.)將敏感數據放置在web.config文件中,但是對包含敏感數據的文件部分進行加密嗎?

在* .config文件本身中保護敏感數據的原因是,如果惡意用戶設法獲取包含敏感數據的文件,則將阻止他們讀取敏感數據。 所有這三個選項似乎都只解決了第一個問題(防止敏感數據通過Internet傳輸),但是選項3似乎還解決了防止獲得* .config文件的惡意用戶讀取敏感內容的問題。 如果真是這樣,那么關於放置敏感數據的文件和該文件的位置,似乎所有三個選項都沒有意義。 只需加密web.config文件中包含敏感數據的部分然后繼續。 我想念什么嗎?

我會盡力提出您已經提到的建議。 最安全的方法是不要將敏感數據盡可能多地放入Web配置中,如果確實需要敏感數據,則必須使用選項3的此方法對其進行加密,然后繼續!

等等,繼續前進到什么? 您必須繼續進行應用程序的其他安全方面。 保護Web配置部分並不能保證提供全面的保護。 您必須加強服務器,安全通信,進行滲透測試或進行在線漏洞測試,甚至進行源代碼掃描。 聽起來可能有些矯kill過正,但是如果您真的想減輕安全性問題,我必須提到。 我說減輕是因為現在您和我都不再安全了! 除非您未連接到互聯網,否則不會。 :)

更新:這些是可以幫助您的工具。 有些是免費的,有些則不是。 不僅限於此

  • OWASP -用於滲透測試(免費)
  • Nessus-用於系統加固(企業)
  • CIS CAT-技術堆棧,例如OS,Database,WebServer等(僅限會員)
  • IBM AppScan-用於源代碼掃描(企業)

如果您不想自己做,可以將此安全測試委托給whitehatsec之類的第三方。

好吧,這就是我所擁有的。 我出去了! :)

我創建了兩個方便的批處理文件,用於加密和解密web.config文件的appSettingsconnectionStrings部分:

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 ON

DecryptWebConfig.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 ON

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM