我正在努力提高舊版 asp.net 應用程式的安全性。發現的一個問題是在 web.config 中使用硬編碼的資料庫連接字串。
為了解決這個問題,我已將連接詳細資訊移至 Azure Devops 變陣列中的秘密變數。
變數替換在 IISWebAppDeploymentOnMachineGroup@0 任務中通過設定 XmlVariableSubstitution 完成。
這作業正常。但是,我有點擔心這適用的范圍有多大。此任務將在應用程式中的所有組態檔中執行替換,根據鍵或名稱將 appSettings、connectionStrings、configSections 中的任何元素與所有管道變數進行匹配。
如果在某個階段有人向變陣列添加了一個變數,而該變數恰好與整個應用程式中任何 appSettings 的鍵匹配,則該值將被無意中默默地替換。
我想以某種方式限制替換任務的范圍,以確保它僅適用于我們需要的地方。
有人知道有什么方法可以做到這一點嗎?
uj5u.com熱心網友回復:
當您在 IISWebAppDeploymentOnMachineGroup 任務中使用選項:XML 變數替換時,默認情況下它將回圈所有組態檔。
恐怕沒有這樣的方法可以限制 IISWebAppDeploymentOnMachineGroup 任務中 Xml 變數替換操作的范圍。
作為解決方法,您可以添加檔案轉換任務來更新組態檔中的變數。它支持在任務中定義目標檔案。
例如:
- task: FileTransform@1
displayName: 'File Transform: '
inputs:
fileType: xml
targetFiles: web.config
另一方面,您也可以使用 RegEx Match & Replace 中的任務 RegEx Match & Replace任務。支持在任務中定義目標變數和目標檔案。參考我之前的代碼:RegExMatchReplace 任務
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518565.html
